Как загрузить разделы таблицы HTML одновременно - PullRequest
1 голос
/ 03 декабря 2010

У меня есть таблица, которая будет перестраивать асинхронную каждый раз, когда из выпадающего меню выбирается новая опция. Я могу сделать вызов, и HTML-код генерируется правильно, но при отправке его обратно по проводам он разрывается, если размер слишком велик.

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

Есть предложения?

Вот несколько примеров кода того, что я пытаюсь сделать:

$('[id$=ddCorpIngredientClasses]').change(function () {

        callScriptMethod(
        'IngredientProperties.aspx/ReBuildCorpIngredientTable',

        { 'ingredientClass': $(this).val() },
        function (result) {
            $('[id$=_SlideOutPanelBodyTable]').empty();
            $(result).each(function () {

                var row = this.toString();

                $('[id$=_SlideOutPanelBodyTable]').append(row);

            });
            adjustBodytable();
        });

    });


function callScriptMethod(url, jsonObject, callback, async) {

    callback = callback || function () { };
    async = (async == null || async);

    $.ajax({
        type: 'POST',

    contentType: 'application/json; charset=utf-8',
    url: url,
    data: JSON.stringify(jsonObject),
    dataType: 'json',
    async: async,
    success: function (jsonResult) {
        if ('d' in jsonResult)
            callback(jsonResult.d);
        else
            callback(jsonResult);
    },
    error: function () {
        alert("Error calling '" + url + "' " + JSON.stringify(jsonObject));
        callback([]);
    }
});
}

Ответы [ 3 ]

4 голосов
/ 03 декабря 2010

Используйте SlickGrid с источником данных AJAX. ( Демоверсии здесь. )

Обычно вы загружаете только 50 строк одновременно. Когда пользователь прокручивает, следующие 50 строк запрашиваются и легко отображаются. Кроме того, SlickGrid динамически создает и удаляет элементы DOM по мере прокрутки пользователем, поэтому физически строк больше, чем на экране. Это означает, что SlickGrid может обрабатывать буквально миллионов строк без вздрагивания.

4 голосов
/ 03 декабря 2010

Я полагаю, вы ищете это:

Существует множество плагинов, но я думаю, что вторая ссылка - ваш лучший выбор.

0 голосов
/ 03 декабря 2010

Вам понадобится форма нумерации страниц на вашем бэкэнде, чтобы ограничить количество возвращаемых строк.Затем запустите событие в JQuery для извлечения новых строк в таблицу, используя AJAX, увеличив запрос числа страниц.

Нам нужно больше информации, прежде чем давать реальные решения.

...