ASP.net 2.0 Gridview с расширяющимися строками панели Как построить панель на лету

В настоящее время я создаю Gridview с расширяемыми строками. Каждая строка содержит динамически создаваемую панель элементов формы. Прямо сейчас у меня есть функция javascript, которая расширяет (или, в моем случае, делает видимой) панель, когда изображение щелкается в строке Gridview.

Мой вопрос... есть ли более эффективный способ сделать это. Вместо того, чтобы с самого начала извлекать все мои данные и создавать каждую новую строку при привязке данных, есть ли способ просто создать строку с панелью, полной текстовых полей и раскрывающихся списков, на лету, когда пользователь нажимает кнопку «Развернуть»?»

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


person jlrolin    schedule 20.11.2008    source источник


Ответы (4)


На самом деле, он работает неплохо, поскольку мой исходный SQL-запрос может заполнять каждую строку, и я включил пейджинг в Gridview. Мне просто интересно, можно ли их создавать на лету с помощью PageMethods или какого-то решения JSON/AJAX. Я ничего не видел, но... стоит попробовать поискать.

person jlrolin    schedule 20.11.2008

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

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

person Sonic Soul    schedule 09.06.2010

Личная попытка создать данные на лету, скорее всего, приведет к замедлению работы пользователя.

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

В противном случае я бы предположил, что ваш способ работает не так уж медленно.

person Mitchel Sellers    schedule 20.11.2008

На самом деле это недавно работало в обработчике AJAX, возвращающем структуру формы. Это по запросу, и работает хорошо. Просто вызовите $ajax через jQuery, верните HTML-структуру, вставьте в DIV. Это немного ограничивает реальную функциональность, поэтому будьте осторожны.

person jlrolin    schedule 09.10.2010