ASP.Net: Как добавить строки в повторитель, используя DOM / Javascript?

StackOverflow https://stackoverflow.com/questions/442151

Вопрос

Я знаю, что ретранслятор 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
    }
}

Вы просто должны закрыть отверстия!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top