каждая строка в сетке - PullRequest
       3

каждая строка в сетке

1 голос
/ 08 сентября 2011

У меня есть сетка из 100 страниц и 10 элементов на странице. (Размер сетки динамический) У меня есть команда удаления. Все отлично работает Теперь мне нужно добавить команду рекурсивного удаления, которая gonig удаляет ВСЕ строки из сетки.

Я пытаюсь сделать это:

foreach (GridDataItem item in RadGrid1.Items)
{

}

, но он считает только строки на одной странице (одновременно удаляет 10 записей)

Как мне запустить одно и то же для каждой строки во всей сетке?

gv.Items.count также дает 10

Ответы [ 2 ]

4 голосов
/ 08 сентября 2011

Я предполагаю, что это для RadGrid для ASP.NET AJAX, но не стесняйтесь исправлять меня, если я ошибаюсь.

RadGrid будет содержать только те элементы, которые отображаются в данный момент. Поэтому, если у вас размер страницы 10, он будет содержать только 10 элементов в коллекции RadGrid.Items.

Если вы хотите получить доступ ко всем элементам RadGrid, лучше всего вернуться к исходному источнику данных. Поэтому, если это DataSet, я бы просто использовал серверную логику для удаления элементов из этих данных, а затем вызвал .Rebind () к RadGrid, который обновит Grid для отображения текущих элементов.

Однако, если переход к исходному источнику данных не является опцией, вы всегда можете установить AllowPaging в false (в MasterTableView RadGrid), вызвать .Rebind (), выполнить всю свою логику (RadGrid.Items теперь будет иметь все ваши элементы), затем установите AllowPaging в значение true и снова вызовите .Rebind (). Это немного более неэффективно, но вполне может сработать.

Что имеет смысл, так это вернуться к базовым данным. Если вы пытаетесь удалить все данные из RadGrid, почему бы вам просто не установить источник данных в пустой массив и вызвать .Databind () или .Rebind ()? Гораздо быстрее, чем удалять все элементы из RadGrid по одному.

0 голосов
/ 10 февраля 2014

Решение, предложенное Carlbergenhem, имеет смысл. Но если вы хотите стереть данные из базы данных, вы можете просто удалить их, введя команду SQL DELETE, а затем перепривязать свою сетку.

DELETE FROM <<YOUR TABLE NAME>> WHERE <<CONDITION>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...