ASP.Net: Как добавить строки в повторитель, используя DOM / Javascript?
-
22-07-2019 - |
Вопрос
Я знаю, что ретранслятор asp.net не имеет объектной модели на стороне клиента, и мы застряли с повышением производительности многих страниц, которые имеют ретранслятор / gridview с функциональностью добавления к ним строк с помощью кода на стороне сервера. р>
Мы использовали панели обновления, чтобы улучшить функциональность, добавив строки в репитер / сетку, но время, необходимое для отключения сервера и отрисовки в браузере, недопустимо.
Есть ли способ сделать это на стороне клиента, чтобы улучшить производительность добавления строк в репитер / сетку. Мы используем Asp.net 2.0
Решение 2
Я обнаружил, что элемент управления Repeater не имеет DOM, который можно использовать для выполнения операций на стороне клиента, таких как добавление строк и прочего, единственный простой выход (из-за некоторых ограничений), который у меня был, - это использовать Вместо этого используется элемент управления GridView, а затем используется его DOM, и это то, что я наконец-то сделал.
Другие советы
UpdatePanels по-прежнему выполняют полную обратную передачу страницы, а затем просто обновляют любой контент внутри панели. Отсюда и ваше замедление.
Что касается использования AJAX для ускорения процесса, вам нужно использовать прямые вызовы AJAX для запроса только тех данных, которые вам нужны. Вы можете сделать это с ASP.NET AJAX.
В обработчике события page_load зарегистрируйте свой AJAX. (VB.NET) р>
Ajax.Utility.RegisterTypeForAJAX(GetType(ThisPageClass))
Затем создайте функцию, которая будет доступна AJAX, например:
<Ajax.AjaxMethod()> _
Public Function GetNewRows() As String
''//do stuff
Return jsonObj
End Function
Затем на стороне клиента вы можете назвать это так:
ThisPageClass.GetNewRows(someCallbackFunction);
function someCallbackFunction(result) {
var json = ParseJSON(result.value);
for(var i=0; i<json.length; i++) {
// do whatever
}
}
Вы просто должны закрыть отверстия!