Команды GridView для огромного набора данных - PullRequest
1 голос
/ 13 декабря 2010

У меня есть GridView, который отображает более 30000 строк, и пользователи должны иметь возможность редактировать «флажок» (флажок) и «причину» (текстовое поле) для каждой строки.Я подумал о двух способах сделать это:

1: отправлять обратно каждый раз, когда установлен флажок, и сохранять причину и флаг в отдельной строке - быстро, если редактируется только одна строка, но становится утомительным, когда нужны флагидолжен быть изменен для нескольких строк, так как страница должна каждый раз выполнять обратную передачу, что приводит к повторной привязке огромной сетки.

2: отключите автоматическую обратную передачу из флажка и обновляйте таблицу только при нажатии глобальной кнопки «Обновить»,Это позволяет проводить быструю проверку / снятие отметки, но для проверки статуса нужно было бы проходить по каждой строке - я понятия не имею, сколько времени это займет, и, честно говоря, я не хочу знать!

Есть лилюбые другие методы, которые я мог бы использовать?Возможно, используя AJAX, но легко ли его использовать для GridViewRow?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

Мне кажется, что вы отображаете элементы управления CheckBox / TextBox при первой загрузке страницы. Если это так, вы должны НЕ AutoPostBack. Рассматривайте это как обычную форму, переключитесь на элемент управления ASP Repeater, извлеките отправленные значения из формы на отдельной странице и затем отправьте их в базу данных. Ничто в вашем вопросе не заставляет меня думать, что вам нужно нарушить нормальную модель отправки форм, чтобы учесть то, как пользователи взаимодействуют с этой страницей.

Вы не упомянули об использовании кнопок «Редактировать / Обновить / Отменить», что заставляет меня поверить, что вы не используете встроенные команды GridView. Честно говоря, для меня это звучит так, будто вы пытаетесь сделать эту страницу подходящей для модели уже существующего элемента управления ASP, когда это не так. Если бы я был вами (и имел время), я бы переписал эту страницу, используя элемент управления ASP Repeater, и использовал бы jQuery для отправки страницы через вызов AJAX в ASP.NET WebMethod. В этом предыдущем предложении много жаргона, но, как только вы впервые его выполнили, это упростит процесс написания ваших страниц.

Редактировать: Ваш комментарий говорит, что 30 000 было деловым решением, поэтому я удалил часть своего ответа, указав, что у вас был выбор в этом вопросе. Я чувствую твою боль.

0 голосов
/ 13 декабря 2010

Вы можете использовать AJAX для этого.Если бы я делал что-то вроде этого, то, вероятно, я бы использовал этот метод.Это даст вашим пользователям приятный пользовательский опыт, и вам не придется беспокоиться о выполнении большого количества обработок в конце.

С другой стороны, если у вас 30 000 записей, будет ли это приложение полезным дляваши пользователи?Я сомневаюсь, что кто-нибудь собирается просмотреть 30 000 записей и извлечь из этого что-нибудь полезное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...