У меня есть вид сетки, зависящий от трех каскадных выпадающих меню (в панели обновления). Когда пользователь редактирует ячейку в виде сетки, меняет раскрывающийся список и нажимает «Показать», он вызывает следующий код:
protected void Save_Click(Object sender, EventArgs e)
{
foreach (GridViewRow gvr in MasterDisplay.Rows)
MasterDisplay.UpdateRow(gvr.RowIndex, false);
MasterDisplay.DataBind();
}
Проблема в том, что выпадающие списки изменят вид сетки, поэтому обновленные ячейки выходят из строя . Пример: допустим, у меня есть шесть предметов: A1, A2, A3, B1, B2, B3. Если я отредактирую цену для B2, то поменяю раскрывающийся список с надписью «сначала показывать Bs», а на открывшейся странице я вместо этого увижу новую цену для A2 (т. Е. Любую пятую позицию в заказе).
Я полагаю, это потому, что в UpdateRow () мы обновляем только на основе индекса (gvr.RowIndex), так что GridView каким-то образом отображается повторно (без потери новых данных о ценах!) И затем обновляется.
Любые идеи о том, как сохранить эти изменения в соответствующей строке, а не просто в строке, которая теперь имеет тот же индекс, что и раньше?