Если элемент управления DataSource
не используется с GridView
или другим элементом управления с привязкой к данным, который скрывает сложность ручной привязки данных, вы должны вручную обрабатывать RowEditing
, RowUpdating
, RowDeleting
и т. Д. Благодаря встроенной модели данных и автоматической привязке GridView
обрабатывает эти события за вас.
Вы не опубликовали свой код RowEditing
, но я подозреваю, что вы не устанавливаете GridViews EditIndex
на NewEditIndex
и не выполняете повторное связывание, возможно, именно поэтому вы не видите текущие данные.
protected void gvwEmployees_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView.EditIndex = e.NewEditINdex;
BindData();
}
То же самое верно для вашего RowUpdating
события. Вам придется вручную обновить ваши данные, а затем установить EditIndex
в -1, это вернет ваш GridView
обратно в режим ReadOnly
. Имейте в виду, что свойства e.OldValues
, e.NewValues
и e.Keys GridViewUpdateEventArgs
не заполняются при связывании вручную. Это означает, что вам придется самостоятельно позаботиться об обновлении, используя e.RowIndex
, который является индексом отредактированной строки.
protected void gvwEmployees_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView.EditIndex = -1;
BindData();
}