ASP.net 2.0 Gridview с расширяющимися строками панели - Как создать Panel "на лету" - PullRequest
2 голосов
/ 21 ноября 2008

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

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

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

Ответы [ 4 ]

1 голос
/ 21 ноября 2008

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

1 голос
/ 09 июня 2010

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

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

0 голосов
/ 09 октября 2010

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

0 голосов
/ 21 ноября 2008

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

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

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

...