2013-09-30 63 views
0

我一直使用inlineNav方法進行內聯添加,如下所示。在jQgrid中添加新行後重新加載網格使用inlineNav進行內聯編輯

jQuery("#mygrid").jqGrid("inlineNav", "#mygrid_pager1",{"addParams":{"position":"last","addRowParams":{"keys":true}}}); 

它很好用。現在,我需要在添加新行後重新加載網格。我已經嘗試了以下,但沒有奏效。

jQuery("#mygrid").jqGrid("inlineNav", "#mygrid_pager1",{"addParams":{"position":"last","addRowParams":{"keys":true, "successfunc":"function(id){$("mygrid").trigger("reloadGrid");"}}}); 

任何指針的讚賞!

回答

3

successfunc所有的價值首先應該是功能,而不是字符串(請參閱您當前的代碼"successfunc":"..."

我會建議你嘗試在同一設置添加到兩個addParams.addRowParamseditParams選項inlineNav。另外我建議你把$(this).trigger("reloadGrid")successfunc裏面的setTimeout確定重新加載後會開始這個標準的行保存處理。

因此,代碼可以瞭解以下信息:

var editOptions = { 
     keys: true, 
     successfunc: function() { 
      var $self = $(this); 
      setTimeout(function() { 
       $self.trigger("reloadGrid"); 
      }, 50); 
     } 
    }; 

$("#mygrid").jqGrid("inlineNav", "#mygrid_pager1", { 
    addParams: { 
     position: "last", 
     addRowParams: editOptions 
    }, 
    editParams: editOptions 
}); 
+0

我要去給它嘗試。謝謝,奧列格。我也嘗試reloadAfterSubmit並將其設置爲true,我想知道爲什麼這兩個都不起作用。 – devXen

+0

@ToadyMores:不客氣!你是否設置'reloadAfterSubmit'僅用於添加或添加和編輯操作?問題是inlineNav的「保存」按鈕不能區分選項,並且即使添加了新行也可以使用編輯選項('editParams')。這些bug中的一些已經在github上的jqGrid的代碼中修復了。 – Oleg

+0

你是對的,我用引號括起了函數,從而弄得一團糟。一旦報價被移動,它就可以工作!我也根據你的代碼添加了setTimeout。 – devXen

0

我認爲最簡單的方法是完成補充一下,調用加載功能之後單獨像jQuery("#myGrid").reload();