2010-10-03 55 views
6

我需要通過userDatajqgrid,但找不到任何如何執行此操作的示例。這裏是我的嘗試:如何閱讀jqgrid中的userData?

從服務器發送:

{ total: 25, 
    page: currentpage, 
    userData: {foo: 'bar'}, 
    rows: myRows } 

和的jqGrid:

var data = jQuery("#grid").getGridParam('userData'); 

如何發送userData和jqGrid的看了嗎?

編輯:我知道我的userData正在發送,因爲我可以在Fiddler中看到它。我想我只是停留在如何在客戶端閱讀它。

回答

16

一般的userData的使用是非常簡單的。 jqGrid支持從服務器發送任何額外的數據,這些數據將與jqGrid數據一起保存。所以如果jqGrid解析從服務器返回的數據,那麼它只是尋找userdata而不是對於userData !!!)並且保存在內部參數userData中。

{ "total":25, 
    "page":1 
    "records":107, 
    "userdata": {"foo": "bar"}, 
    "rows": [...] } 

注意:在輸入數據的默認屬性必須是userdatauserData喜歡你目前有。如果使用userDatamyData作爲屬性名稱,並且您的additional data可以覆蓋輸入屬性jsonReader: {userdata: "userData"}jsonReader: {userdata: "myData"}的默認名稱。

一個來自userData的標準用法是針對jqGrid中的displaying of the footer。您可以將這些數據用於任何其他建議。在another answer中顯示瞭如何使用userData在從服務器加載數據之後直接選擇某些行/行。

如果使用loadonce:true參數的userData的使用將是一個小更棘手,因爲後的第一負載從參數userData的數據將被刪除,所以你必須有保存在外部對象。

因爲只有在加載數據後才能訪問的userData。所以你應該在loadComplete事件句柄或更高版本中執行此操作。順便說一句loadComplete裏面的事件句柄你可以訪問所有的數據,這些數據是通過服務器發送給你的data參數loadComplete事件。所以你可以閱讀任何其他數據並保存在某處。

+1

謝謝。如果任何人稍後閱讀,摘要是當談到一個GridParam時它是'userData',否則它是'userdata'。在loadComplete事件處理程序中讀取'userdata'。使用'userdata'設置'postData'的方法如下:'loadComplete:function(data){jQuery(「#ticketlist」)。setGridParam({postData:{foo2:data.userdata.foo}});}' – royco 2010-10-03 19:58:22

+0

@Slack :你也可以像loadComplete:function(){jQuery(「#ticketlist」)。setGridParam({postData:{foo2: jQuery(「#grid」)。getGridParam('userData')。foo}});}'。理解這一點很重要,在從服務器發送的數據中,必須放置'userdata',數據將被保存在jqGrid的'userData'參數中。所以它可以通過'getGridParam('userData')'訪問。但最重要的是,你的程序現在可以工作,並且可以使用'userdata' /'userData'。 :-) – Oleg 2010-10-03 20:09:59

+0

man我一直在使用userData而不是用戶數據在json generator中,我一直在瘋狂,非常感謝! +1 – Neo 2010-10-19 05:19:26

1

jqGrid默認接受這種格式的JSON。

{"rows": 
    [{"foo":"bar"}] 
} 

和設置,你會做這樣的事情的jqGrid的選擇:

$("#cashflow-sheet").jqGrid({ 
    url:'bbc-json.html', 
    datatype: "json", 
     ... 
+0

感謝您的發佈。我其實jqgrid工作正常,可以顯示行沒有問題。我省略了該代碼。我不明白的是如何使用jqgrid的'userData'功能。這使您可以將一組用戶數據從服務器發送到網格。 – royco 2010-10-03 06:35:52