2011-07-10 356 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 –