2009-06-16 5 views

ответ

1

Сначала получите содержимое вашей сетки перед изменением (например, кеширование результатов первоначальной привязки источника данных gridview). Затем пройдите через набор данных/datatable/однако вы хотите сохранить его и сравнить содержимое с текущими строками gridview.

1

Нет реального эффективного способа сделать это, нет метода GridView.GetAllChangedRows(). Таким образом, вы можете вместо этого сохранить список закулисных списков, который вы добавляете каждый раз, когда изменяется строка (используйте метод RowUpdated), затем очищайте этот список, когда это необходимо.

0

Это зависит от того, сколько столбцов вы хотите редактировать в строке.

Если у вас есть только один редактируемый столбец в строке, вы можете связать метод javascript с этим элементом управления, который вы хотите изменить, и в этом методе вы можете получить rowid, который вы можете сохранить в другом скрытом поле и на стороне сервера вы можете получить все строки, идентификаторы которых хранятся в скрытом поле.

Если у вас есть целая строка, редактируемая в этом случае, лучший подход, я думаю, вы должны где-то сохранить исходный источник данных, а также установить javascript-метод с событием rowclick, чтобы получить rowid, который пользователь выбирает. Затем, когда пользователь нажимает кнопку отправки, получайте все строки, идентификаторы которых хранятся в скрытом поле, а затем сравнивайте их с тем же самым rowid в источнике данных. Это лучший подход из моей точки зрения.

Позвольте мне привести пример, предположим, что в сетке 1000 строк, и пользователь нажимает только на 180 строк. В этом случае мы сравним только 180 строк и не будем сравнивать остальные строки.

Пожалуйста, дайте мне знать, если у кого-то есть лучшая идея, то это.

Смежные вопросы