Относительно элемента управления GridView
Проблема события RowUpdating, это
ожидаемое поведение, потому что, когда мы делаем
не ассоциировать GridView (или другой
ASP.NET 2.0 управления данными) с
Контроль источника данных, это не будет
автоматически запрашивать и заполнять
Коллекция параметров
обновление / удаление / ... событий. В таком
случаи, нам нужно вручную извлечь
значения полей из шаблона
управление.
Это то, что говорит сотрудник Microsoft в здесь .
В этом случае вы можете сделать это, используя метод ExtractValuesFromCell , чтобы самостоятельно создать коллекцию NewValues.
EDIT:
Я нашел фрагмент кода в комментариях этого блога:
protected void OnRowEditing(object sender, GridViewEditEventArgs e)
{
GridView gv = (GridView)sender;
gv.EditIndex = e.NewEditIndex;
gv.DataBind();
...
}
protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView gv = (GridView)sender;
for (int i = 0; i < gv.Columns.Count; i++)
{
DataControlFieldCell cell = gv.Rows[e.RowIndex].Cells[i] as DataControlFieldCell;
gv.Columns[i].ExtractValuesFromCell(e.NewValues, cell, DataControlRowState.Edit, true);
}
// now you can use NewValues collection normally
}
Не проверял, но, кажется, решил проблему, дайте мне знать, если это было.