jqGrid的userData的用法!!!


在一次項目中想從后台自定義一些返回值傳回jqGrid,所以就想到了jqGrid的這個userData屬性,但是真的是坑了我好慘,這里記錄一下!

1、首先看說明,這個jsonReader的默認配置,userdata:'userdata'

 1 jsonReader : {
 2     root: "rows",    // json中代表實際模型數據的入口
 3     page: "page",    // json中代表當前頁碼的數據
 4     total: "total",    // json中代表頁碼總數的數據
 5     records: "records", // json中代表數據行總數的數據
 6     repeatitems: true, // 如果設為false,則jqGrid在解析json時,會根據name來搜索對應的數據元素(即可以json中元素可以不按順序);而所使用的name是來自於colModel中的name設定。
 7     cell: "cell",
 8     id: "id",
 9     userdata: "userdata",
10     subgrid: {
11         root:"rows", 
12         repeatitems: true, 
13         cell:"cell"
14     }
15 }

2、在使用過程中,最開始我是這樣使用的,

 

//在后台,我自己定義了幾個求和數值放在了一個叫userdata的對象中,這個時候,我是沒有修改jsonReader的默認配置,也就是說userdata是'userdata',
//我這里起的名字是userdata,跟jsonReader配置的名字一樣

var
result = new { currentPage = request.page, totalPages = request.totalPages, totalCount = request.totalCount, rows = resultList, //求和 自定義jqGrid返回參數 userdata = new { sumWeight = request.SumWeight, sumIncome = request.SumIncome, sumQuantity = request.SumQuantity } };
//在前台,我想這么取出來,失敗
var
userData = $("#gridList").jqGrid('getGridParam').userdata;

3、總結!

  結果,當然是成功取出來了,經過了F12的好一頓亂搞,我終於發現,在$("#gridList").jqGrid('getGridParam')中,有一個userData屬性,這個屬性名是固定的就是大寫,它存放的值就是jsonReader中的那個userdata:'userdata'的值,在這里默認是小寫的userdata,其實這個設置,只是跟你在后台起對象名有關系,比如,你這里默認是userdata,那么你在后台想用userdata的時候,你就必須也用userdata,這倆必須一一對應,然后。重要的事情說三遍!!!嗯就是三個!!!,這個時候,我以為在取值的時候,這么取了

 

var userData = $("#gridList").jqGrid('getGridParam').userdata;

 

結果,不對!,其實在取值的時候呢,是用的$("#gridList").jqGrid('getGridParam')自己固定的一個屬性,它就叫userData,!!!不管你在jsonReader中起了什么狗名字userdata 也好,xxxfs也罷,只有你在后台存放數據的時候,名字跟這個一致就可以!但是,在取值的時候,就是用.userData就好了!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM