在加载新数据之前清除jqGrid不起作用?

时间:2011-05-06 09:22:46

标签: javascript jquery jqgrid

你好^ _ ^我有以下问题:

我有一个带有jqGrid的局部视图...我使用bPopup将部分视图显示为对话框。

现在视图侧面有一个项目列表。单击某个项目时...将显示该对话框,其中的表格显示与该响应相关的数据...

现在的问题是点击后续项目;点击的第一个项目的数据仍然显示...所以我认为只需调用

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

将清除数据并允许我显示新数据......但现在当我尝试在后续点击中显示对话框时......只显示表格标题...没有数据!

任何想法和帮助对此赞赏:) d

P.S。一些代码;以下方法由方法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 个答案:

答案 0 :(得分:12)

您可以使用以下方法卸载jqGrid

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

答案 1 :(得分:3)

您没有公布如何创建用于网格的id="ListDialogTable"元素。它会动态构建还是创建一次并多次使用?此外,还不清楚是否可以在通话之间更改model.columnNmodel.columnM。所以我只能猜测。

您可能需要使用GridUnload方法,该方法允许您重新创建网格,包括其所有元素,包括列标题和寻呼机包含的元素。来自The demothe answer证明了它是如何运作的。

答案 2 :(得分:2)

您可以使用jqgrid的GridUnload方法

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

这将卸载整个网格,并允许您将新数据加载到网格中。

答案 3 :(得分:1)

我有同样的问题,因为我使用旧版本的jqGrid,这是我的解决方案:

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