Очистка jqGrid перед загрузкой новых данных не работает? - PullRequest
1 голос
/ 06 мая 2011

Привет ^ _ ^ У меня следующая проблема:

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

Теперь на стороне вида есть список предметов.При нажатии на элемент ... должно отображаться диалоговое окно с таблицей, отображающей данные, относящиеся к этому ответу ...

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

$("#ListDialogTable").jqGrid("clearGridData");

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

Любые идеи и помощь по этому вопросу приветствуются :) D

Ps некоторый код;метод ниже вызывается методом ShowListDialog

function PopulateTable(model) {
    $("#ListDialogTable").jqGrid("clearGridData");
    $("#ListDialogTable").jqGrid({
        jsonReader:
        {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: true,
            cell: "cell",
            id: "id"
        },

        colNames: model.columnN,
        colModel: model.columnM,

        datatype: "jsonstring",
        datastr: model.columnD,

        sortname: model.sortName,
        sortorder: "asc",

        autowidth: true,
        celledit: false,
        gridview: true,
        height: "auto",
        hoverrows: false,
        shrinkToFit: true,
        rowNum: 999,
        viewrecords: true
    });
}

Ответы [ 4 ]

12 голосов
/ 10 октября 2014

Вы можете выгрузить jqGrid, используя следующий метод:

jQuery("#tableId").jqGrid("clearGridData");

3 голосов
/ 06 мая 2011

Вы не опубликовали, как создается элемент с id="ListDialogTable", который вы используете для сетки.Будет ли он построен динамически или создан один раз и будет использоваться много раз?Более того, не ясно, можно ли между вызовами изменять model.columnN и model.columnM или нет.Поэтому я могу только догадываться.

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

2 голосов
/ 09 июля 2013

Вы можете использовать метод jqgrid GridUnload

$("#tableId").jqGrid("GridUnload")

Это будет выгружать всю сетку и позволит вам загружать новые данные в сетку.

1 голос
/ 14 августа 2015

У меня такие же проблемы, потому что я использую старую версию jqGrid, и это мое решение для этого:

jQuery("#grid").clearGridData(true).trigger("reloadGrid");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...