jqgrid重新初始化

时间:2011-07-10 20:27:21

标签: jquery jqgrid

我需要找到一种修改网格参数的方法。让我更好地解释一下这个场景。 我的页面上有两个jqGrid对象,它们都调用一个远程Web服务函数来提供数据。第一个对象是主网格,当用户单击列中的按钮时,应用程序会显示一个对话框,其中包含第二个网格。

第二个网格将包含一些与第一个网格选定行中包含的字段相关的数据。所以我实际拥有的代码如下:

function showDialog(customerID, wsBaseUrl, sl) {
    var title = "";
    var dlg = $("#pclist");
    //Set the title with the value returned
    dlg.dialog("option", "title", title);
    createGrid(customerID, wsBaseUrl, sl);
    //Open the dialog
    dlg.dialog('open');
}

function createPCGrid(customerID, wsBaseUrl) {
    var pc_grid = $('#pcgrid');
    pc_grid.jqGrid({
        url: wsBaseUrl + 'GetOrderList',
        colNames: ['OrderID', 'Order Date', 'Qty', 'Unit', 'Line total'],
        colModel: [
            //omitted for brevity
        ],
        jsonReader: {
            id: "OrderID"
        },
        serializeGridData: function (postData) {
            if (postData.filters === undefined) postData.filters = null;
            if (postData.customerID === undefined) postData.customerID = customerID;
            return JSON.stringify(postData);
        },
        pager: $('#pcgrid_pager'),
        sortname: 'OrderID',
        sortorder: "asc",
        height: '280',
        rownumbers: true,
        gridview: true
    });
}

正如你所看到的那样,每次点击完成后我都会重新创建一个网格对象,并将它的参数customerID绑定在将由网格中的网格发送到服务器的参数列表中serializeGridData功能事件。

不幸的是,这不起作用,初始参数永远不会改变。

也许我还没有正确地做到这一点。有没有办法重新初始化网格或将params传递给网格,以便在我的样本中的后续请求中进行序列化?

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

我认为关闭它后,对话框将被隐藏而不会被破坏。因此,您可以在分配pc_grid = $('#pcgrid')之前添加$("#pcgrid").jqGrid('GridUnload')来电。