2011-11-28 38 views
0

首先,我爲我的英文道歉。jqGrid編輯後重新加載其他網格

我有4個網格顯示來自不同的sql查詢結果的數據。他們按其狀態分類。所有的網格工作正常,但有一件事是我想要做的,但我無法弄清楚如何去做。我希望其他網格在成功編輯後刷新。 jqGrid只刷新我當前正在編輯的當前網格,這很好,但我最終刷新了整個頁面以查看另一個網格上已更改的項目。

我已經使用.trigger("reloadGrid");但這似乎並不奏效。

我該如何做到這一點?請幫忙。非常感謝。

這是jqGrid的:

$('#diag').jqGrid({ 
     url: 'ajax/ajax-diag.php', 
     data: 'xml', 
     mtype: 'GET', 
     colNames: ['Job', 'Client', 'Status', 'Notes'], 
     colModel: [ 
      { name: 'jobnumber', index:'jobnumber', align:'center', width: 70, editable:true}, 
      { name: 'clientid', index:'clientid', align:'center', width: 70, editable:true }, 
      { name: 'statuslabel', index:'statuslabel', align: 'center', width: 125, editable:true},    
      { name: 'notes', index: 'notes', align: 'center', editable: true } 
     ], 
     loadComplete: function() { 

      if ($('#diag').getGridParam("records") == 0) { 
       $('#diag').hide();    
      }    
     },   
     pagination: true, 
     pager: '#diagpager', 
     rowNum: 10, 
     rowList: [10,20,30], 
     sortname: 'jobnumber', 
     width: '100%', 
     height: '100%',   
     sortorder: 'desc', 
     viewrecords: true, 
     closeOnEscape: true, 
     gridview: true, 
     editurl: "ajax/ajax-edit.php", 
     caption: 'Stage 1'   
    }); 
$('#diag').jqGrid('navGrid', '#diagpager',{},{closeAfterEdit:true},{closeAfterAdd:true}); 

我使用的導航儀也是如此。

求助: 感謝曼努埃爾麪包車Rijn,我找到了導航器尋呼機的正確參數。

這是我最後的尋呼機:

$('#diag').jqGrid('navGrid', '#diagpager',{},{ 
      closeAfterEdit:true, 
      afterComplete:function() { $('#twoRec').trigger('reloadGrid')} 
     },{closeAfterAdd:true}); 
+0

你如何將數據加載到你的網格?什麼是'datatype'屬性設置爲? – arb

+0

am使用ajax和數據:xml –

+0

您可以發佈您用於創建單個網格的代碼嗎?我假設除了用於獲取數據的URL之外,所有四個都是相同的。 – arb

回答

1

試試這個

$("#gridId").jqGrid().trigger("reloadGrid"); 

UPDATE

$('#diag').jqGrid('navGrid', '#diagpager',{ 
    afterRefresh: function() { 
     $("#otherGrid").jqGrid().trigger("reloadGrid"); 
    } 
},{closeAfterEdit:true},{closeAfterAdd:true}); 

// above seems to work only when hitting the refresh button 

更新2

$('#diag').jqGrid('navGrid', '#diagpager',{ 
    editfunc: function(rowId) { 
     ('#grid_id').editRow(id, true, false, reloadGrids); 
    } 
},{closeAfterEdit:true},{closeAfterAdd:true}); 

function reloadGrids() { 
    $("#otherGrid").jqGrid().trigger("reloadGrid"); 
} 
+0

如何從jqGrid調用此函數?我正在使用導航器進行編輯。 –

+0

@SaintShann更新了我的帖子 –

+0

,但只有按下刷新按鈕後,它纔會在編輯後刷新其他網格。 –

1

你可以試試這個:

$('#diag').jqGrid('setGridParam', { datatype: 'xml' }).trigger('reloadGrid'); 

有一定的jqGrid的設置,可以讓一組,以防止電網再次擊中服務器。其中之一是datatype。另一個是loadonce

相關問題