2011-07-10 316 views
1

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

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

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 PARAMS即会名单上通过网格在其serializeGridData函数事件中发送到服务器。

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

反正也许我做得不对。有没有什么方法可以重新初始化网格或将params传递给网格,以便在后续请求中序列化,如同我的示例一样?

感谢您的帮助

回答

3

我想这个对话框在关闭之后会被隐藏并且不会被销毁。因此,在分配pc_grid = $('#pcgrid')之前,您可以包括呼叫$("#pcgrid").jqGrid('GridUnload')

+0

一如既往....谢谢!!! – Lorenzo

+0

@Lorenzo:一如既往:欢迎您! – Oleg

+0

可以帮助别人。这对于4.8.2不起作用。但这工作https://stackoverflow.com/questions/32316701/uncaught-exception-jqgrid-no-such-method-gridunload –