Nano Hash - криптовалюты, майнинг, программирование

Как сохранить положение прокрутки при вставке новых строк в таблицы данных

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

Для инициализации моей таблицы я использую следующий код:

     var obj = [];

     // if I make start initialization of the object - the row in a table appears.
     //var obj = [{"Name": "name1", "Id": "id1", "Value":"value1"}];

     var table;

        $(document).ready(function () {

            table = $('#example').dataTable({
                "sPaginationType": "full_numbers",
            "sScrollY": "250px",
            "aaSorting": [],
            "aaData": obj,
            "aoColumns": [
            { "mDataProp": "Name" },
            { "mDataProp": "Id" },
            { "mDataProp": "Value" }
        ]
        });
    }
    );

Чтобы обновить мой объект JSON:

function updateObject() {
    var response = $.ajax({
        type: "GET",
        datatype: "json",
        url: myURL,
        success: function (result) {
            obj = jQuery.parseJSON(result);
            //table.fnDraw(); - tried this but it doesn't work
        }
    });
}

Данные JSON, которые я получаю с сервера:

 [{"Name": "name1", "Id": "id1", "Value":"value1"}, 
     {"Name": "name2", "Id": "id2", "Value":"value2"},...]

Можно ли обновить содержимое таблицы после получения новых данных с сервера?

ОБНОВЛЕНИЕ:

table.fnClearTable();
table.fnAddData(obj, false);
table.fnStandingRedraw();

После вставки новых строк текущая страница теряется, а также текущая позиция прокрутки. Метод fnStandingRedraw помогает сохранять позицию на странице. Но прокрутка переходит к первой строке. Есть ли способ рассчитать текущую позицию прокрутки, чтобы вернуться после обновления (http://datatables.net/docs/Scroller/1.0.1/) или другое решение?


  • вы нашли решение этой проблемы? 22.11.2014

Ответы:


1

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

table.fnClearTable().fnAddData(obj);
20.03.2013
  • Я также использую плагин fnStandingRedraw(), чтобы сохранить свою позицию на странице после обновления. Но я не могу сохранить позицию прокрутки. Может быть, вы знаете, как справиться с этой проблемой? 20.03.2013
  • Не совсем так, позвольте мне посмотреть, в чем проблема? 20.03.2013
  • Вам не нужно удалять все данные и вставлять новые данные. Это не очень хорошее решение для тех, кто имеет большие наборы данных и пытается добавлять данные при прокрутке. 26.09.2018

  • 2

    У меня был похожий сценарий. Итак, в конце концов я решил так:

    function UpdateDatatable(data, $table) {
        $.ajax({
            type: "GET",
            dataType: "JSON",
            url: "../biz/datahandler.ashx",
            data: ({data: data}),
            async: true,
            error: function (xhr, ajaxOptions, thrownError) {
                /* manage the error */
            },
            success: function (dataget) {
                /* maange the success */
                $table.dataTable({
                    ...
                })
        });
    }
    
    20.03.2013
    Новые материалы

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

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..