2011-05-31 36 views
7

我從模型類生成我的jqgrid,我將其傳入視圖。我得到構建和工作jqgrid。不過,在我調用helper創建jqgrid之後,我想在該視圖的腳本中使用jqGrid的一個視圖上設置postData,而不必更改創建jqgrid的整個局部視圖。如何在jqgrid中設置postData後它已經構建?

我試圖運行

$("#@Model.Id").jqGrid('setGridParam', { postData: { test: 233} }); 

$("#@Model.Id").setGridParam({ postData: { test: 233} }); 

,但沒有錯誤或任何結果。如果我在將其構造的jqGrid參數(在局部視圖設置POSTDATA,它的工作原理。

我還檢查該網格存在,則第一行之前加入

console.log($("#@Model.Id").size()); 

,它顯示了1.

UPDATE:此.setGirdParam功能開始爲我工作沒有明顯的原因,所以我會接受的答案,如果有人可以給一些見解有什麼可以阻止這樣做 感謝

回答

11

你沒有包括的定義。 jqGri d在你的問題中,我們看不到的地方其中setGridParam被調用。首先你應該用setGridParam之後的這個jqGrid創建好,但是之前的這個請求會被髮送。如果您將更改postData,則下一個 jqGrid請求可以使用新參數。因此,人們通常使用

$("#@Model.Id").trigger('reloadGrid', [{page:1}]); 

看到here

我想這對你最好的選擇將是postData作爲函數的功能test財產的使用:

$("#@Model.Id").jqGrid({ 
    // ... other jqGrid parameters ... 
    postData: { 
     test: function() { 
      // the code can by dynamic, read contain of some elements 
      // on the page use "if"s and so on and return the value which 
      // should be posted to the server 
      return 233; 
     } 
    } 
    // other jqGrid parameters ... 
}); 

詳見here。通過這種方式,您幾乎可以實現任何方案。

順便說一句,如果你不想讓jqGrid發送任何請求到服務器,直到事件發生,你可以在初始化時使用datatype:'local'。然後,如果您希望網格應該填充,則可以使用setGridParamdatatype'local'更改爲'json'(或'xml'),並致電.trigger('reloadGrid',...)

+0

感謝測試方法:()函數的一部分,這將是有益的,否則,我已經按照你寫的序中已經實現了一切。它現在有效,但它不是第一次,我不知道我改變了什麼:) – 2011-05-31 10:07:08

+0

@obrad:你沒有發佈你當前使用的代碼。如果某些東西在第一時間不起作用,那麼您應該首先檢查哪些代碼確切起作用。我認爲你可能會遇到這樣的問題,並在我的回答中包含了最初使用'local'的'datatype'部分,這將阻止首次加載網格。在'test:function()'裏面你需要使用的值將被知道後,你可以改變''datatype'到''json''並用'.trigger('reloadGrid',...) '。 – Oleg 2011-05-31 10:42:17

+0

我沒有發佈它,因爲它是生成的,但假設我應該發佈生成的代碼。但是,它現在起作用了。感謝您的幫助。 – 2011-05-31 11:34:35

1
$("#grid id").setGridParam({ postData: {data:dataval} }); 
$("#grid id").trigger('reloadGrid', [{page:1,data:dataval}]);ntn 
1

下面是我用

postData: { 'testKey': function() { return 'testvals'; } }, 
+0

包裝一個全局變量從一個像這樣完美的函數中返回,以便觸發器reloadGrid獲取var的當前值,而不是它在網格第一次創建時的值。韓國社交協會。因此,如果我有var測試,那麼postdata會是這樣的:postData:{'testKey':function(){return testvals; }}, – 2015-07-30 02:50:04

相關問題