jqgrid保存从服务器获取的json数据
问题:服务器端传过来的json数据如下
{
"total": 1,
"records": 4,
"rows": [{
"sex": 1,
"pin_pai": "大众",
"status": 1,
"cheng_shi": "吉林省长春市",
"last_login_date": null,
"last_login_ip": null,
"type": 1,
"id": 300,
"user_name": "userTest",
"rownum_": 2,
"company_name": "大飞公司",
"address": null,
"user_real_name": "test2",
"bindcom": [{
"code": "S23424",
"name": "xx公司1"
}, {
"code": "S34234",
"name": "xx公司2"
}, {
"code": "S3123S",
"name": "xx公司3"
}, {
"code": "S354221",
"name": "xx公司4"
}, {
"code": "SCD2322",
"name": "xx公司5"
}]
}],
"errcode": 0
}
用jqGrid的getRowData方法获取到的数据里并不包含bindcom节点,,原来jqgrid根据colModel将数据给处理了,而我偏偏要获取这些数据,,肿么办?难不成需要用ajax再获取一次?
在网上找到了一些解决方法
我找到了一种麻烦一点的方法 首先用getGridParam('data')获取jqGrid的数据列表 然后根据rowid到列表去取, getGridParam('data')[rowid - 1]
关键是jsonReader{ id: idName }中的idName,在colModel中不能有一个字段名称跟跟idName一样 如果字段列表没有idName字段,则rowid为1, 2, 3... 如果字段列表中有idName字段,则rowid为该字段的值
可惜试用了一下,发现这个方法在新版本的JQ里并不好使,他的方法只适用本地数据源
在网上搜了好久也未找到好的解决方案,在官方文档中也没有发现,于是只好阅读源码!
结果不到3分钟,这个问题就解决了,,,
原来jqgrid在加载完数据的时候会触发loadComplete事件,而原始的JSON数据也会在这个事件中传过来,,于是:
var dgData = null;
......
......
loadComplete : function(data) {
dgData = data;
}
再安照网上说的方法即可搞定:即dgData[rowid-1] 这样就可以获取选中行的原始数据了.
关键是jsonReader{ id: idName }中的idName,在colModel中不能有一个字段名称跟跟idName一样 如果字段列表没有idName字段,则rowid为1, 2, 3... 如果字段列表中有idName字段,则rowid为该字段的值