在我的问题关于如何重新应用工具栏过滤器后下划线数据刷新本地js var问题asked here,奥列格提供了一个解决方案: 1使用数据类型的组合: “本地”和数据:localvar。Jqgrid数据类型从数组本地加载
现在我面临一个不同的问题,一个星期后我无法解决。
使用本地数据源默认localreader看起来像
The initial configuration of the localReader is the same as those from jsonReader
localReader = {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {root:"rows", repeatitems: true, cell:"cell"}
}
我发现这个情况并非如此,当按照jqGrid的维基。因为,我可以找到使用dataype每一个例子:“本地”,它总是使用直JS数组中的JS对象的代替,看起来像这样:
var mydata = [
{id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
{id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
{id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}];
我已经使用默认的localReader尝试(与repeatitems设置为true)来处理
var locObj = {"rows":[
{"id":0,"cell":["val1","val2","val3"]},
{"id":1,"cell":["val1","val2","val3"]}
],
"page":"1",
"total":"1",
"records":"2"
}
与 数据类型:“本地”, 数据:locObj
这是行不通的,因为它不会通过在addlocaldata功能的阵列检查。如果我将选项更改为 数据类型:“本地”, 数据:locObj.rows
我得到了具有正确行数的网格,但每个单元格都有一个空值。我认为这是因为addlocaldata函数无法处理像locObj.rows那样格式化的数组。
有没有一种方法可以使用自定义localreader(而不必在客户端重新创建数组)使用数据类型“local”实际处理json对象(或字符串)?
任何帮助,非常感谢。
Casbby