我有一个jqGrid定义如下:
$("#tableFeedbackReports").jqGrid({
url: '/FeedbackReports/GetFeedbackReport',
datatype: 'json',
colNames: ['ColA', 'ColB', 'ColC', 'ColD'],
colModel: [{ name: 'ColA', index: 'ColA', width: 60 },
{ name: 'ColB', index: 'ColB', width: 60 },
{ name: 'ColC', index: 'ColC', width: 60 },
{ name: 'ColD', index: 'ColD', width: 60 },
/* ... and so on */
现在,当ajax调用返回时,它必须返回将进入每行的数组。
['value', 'value', 'value']
是否可以让jqGrid接受行数据的键/值对?
[{ 'ColA' : 'value', 'ColB' : 'value', 'ColC' : 'value', 'ColD' : 'value'}]
所以当jqGrid加载数据时,它会自动将数据绑定到模型中的列?
答案 0 :(得分:4)
查看jqGrid Wiki上的jsonReader
选项,特别是其repeatitems
媒体资源。从该页面:
repeatitems元素告诉jqGrid该数据的信息 行是可重复的 - 即元素具有在单元格中描述的相同标记单元格 元件。将此选项设置为false会指示jqGrid搜索元素 json数据的名称。这是来自colModel的名称或描述的名称 colModel中的jsonmap选项。
他们的例子是:
jQuery("#gridid").jqGrid({
...
jsonReader : {
root:"invdata",
page: "currpage",
total: "totalpages",
records: "totalrecords",
repeatitems: false,
id: "0"
},
...
});
将使用键/值对以下列格式处理数据:
{
totalpages: "xxx",
currpage: "yyy",
totalrecords: "zzz",
invdata : [
{invid:"1",invdate:"cell11", amount:"cell12", tax:"cell13", total:"1234", note:"somenote"},
{invid:"2",invdate:"cell21", amount:"cell22", tax:"cell23", total:"2345", note:"some note"},
...
] }
答案 1 :(得分:0)
Tag Description
total total pages for the query
page current page of the query
records total number of records for the query
rows an array that contains the actual data
id the unique id of the row
cell an array that contains the data for a row
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data 中的
root
元素。此元素描述了数据的开始位置。换句话说,这指向包含数据的数组。如果我们设定 jQuery的( “#gridid”)。jqGrid的({ ... jsonReader:{root:“invdata”}, ... }); 那么返回的字符串应该是
{
"total": "xxx",
"page": "yyy",
"records": "zzz",
"invdata" : [
{"id" :"1", "cell" :["cell11", "cell12", "cell13"]},
{"id" :"2", "cell":["cell21", "cell22", "cell23"]},
...
]
}
所以如果你选择键值方式;单元格不应该在内容json字符串中,但行应该;
jQuery("#gridid").jqGrid({
...
jsonReader : {
repeatitems: false,
},
...
});
结果数据应为:
{"page":"1","total":1,"records":"1",
"rows": [
{"invid" : "1","invdate":"cell11", "amount" :"cell12", "tax" :"cell13", "total" :"1234", "note" :"somenote"},
{"invid" : "2","invdate":"cell21", "amount" :"cell22", "tax" :"cell23", "total" :"2345", "note" :"some note"}]
请参阅"id":"1"
,"cell"
关键字输出,关联(key value
)数组数据直接位于rows
关键字下;