Событие GridView RowDataBound делает мой GridView медленным

У меня есть PopupExtender, который показывает некоторую информацию при нажатии кнопки в GridView. Эта кнопка есть в каждой строке.

У меня также есть DropDownList, присутствующий в каждой строке, которая заполняется запросом к базе данных. Я делаю это, потому что он может быть заполнен разными элементами в зависимости от строки.

Моя проблема заключается в том, что PopupExtender медленно всплывает из-за события RowDataBound GridView, которое повторно заполняет DDL из базы данных при нажатии соответствующей кнопки PopupExtender.

Как ускорить всплывающее окно PopUpExtender?


person UrsulRosu    schedule 20.06.2013    source источник


Ответы (1)


Возможно, вам придется рассмотреть диалог jQuery вместо расширителя всплывающих окон Asp.Net ajax. http://jqueryui.com/dialog/.

Кроме того, вам действительно нужен gridview, вы можете попробовать элемент управления ListView вместо GridView.

person Deepu Madhusoodanan    schedule 20.06.2013
comment
Сейчас я изучаю диалог jquery. Я протестирую ListView, но почему он будет быстрее? - person UrsulRosu; 20.06.2013
comment
Расширитель всплывающих окон AJAX использует обратную передачу для открытия/закрытия диалогового окна... Пользовательский интерфейс jQuery будет обрабатывать это на стороне клиента. - person Deepu Madhusoodanan; 20.06.2013
comment
Мне требуется обратная передача, чтобы получить информацию, отображаемую во всплывающем окне AJAX. Для каждой строки он может быть разным. - person UrsulRosu; 20.06.2013
comment
Это нормально, вы можете использовать jquery ajax для выполнения обратной передачи и получения контента на основе идентификатора или каких-либо параметров и рендеринга в диалоговом окне пользовательского интерфейса jquery. например: ‹a href='javascript:openPopup(‹DataBind(ВАШЕ ПОЛЕ)›’›Open‹a› что-то вроде этого. - person Deepu Madhusoodanan; 20.06.2013
comment
Будет ли GridView перерисовываться при обратной передаче? Потому что вот где медлительность -> Запрос к базе данных для DDL в сетке. Как правило, в сетке не будет много элементов, но для 10 элементов будет большая задержка. - person UrsulRosu; 20.06.2013
comment
если вы используете пост jQuery ajax, он не будет снова отображать gridview, он будет использовать только определенный пользовательский метод. - person Deepu Madhusoodanan; 20.06.2013
comment
Спасибо! Я пытаюсь реализовать это сейчас! - person UrsulRosu; 20.06.2013