Это немного гипотетический вопрос, который отправил меня по тропинке в сад ... Скажем, у меня есть сетка, которую я хотел бы отредактировать ... учитывая метод, который связывает данные ..
private void BindGridFirst() {
var data = new List<string>() {
"A","B","C","D","E","F"
};
gridView.DataSource = data;
gridView.DataBind();
}
Теперь предположим, что я просматриваю эту страницу, и другой пользователь пришел и внес некоторые изменения в базовые данные, а теперь я иду и нажимаю кнопку редактирования, чтобы редактировать D ...
Метод редактирования довольно прост:
protected void RowEdit(object sender, GridViewEditEventArgs e) {
gridView.EditIndex = e.NewEditIndex;
BindGridSecond();
}
Редактировать: Я вынужден отметить, что этот метод используется практически во всех онлайн-примерах, включая примеры от Microsoft.
Этот метод BindGridSecond () выглядит следующим образом:
private void BindGridSecond() {
var data = new List<string>() {
"A", "AA", "B","C","D","E","F"
};
gridView.DataSource = data;
gridView.DataBind();
}
Это точно так же, но данные теперь изменились. После обновления пользовательского интерфейса пользователь теперь находится в режиме редактирования для строки C .
Не то, что пользователь ожидал или хотел. Как следует обрабатывать этот сценарий, чтобы избежать такой проблемы?