在关于如何在从本地js var question asked here刷新下划线数据后重新应用工具栏过滤器的问题中,Oleg为我提供了一个解决方案: 1使用数据类型的组合:“local”和data:localvar。
现在我面临一个不同的问题,一周后我无法解决。
根据Jqgrid wiki使用本地数据源时,默认的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"}
}
我发现事实并非如此。因为在我使用dataype找到的每个例子中:“local”,它总是使用直接的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的数组。
有没有办法用数据类型实际处理json对象(或字符串):使用自定义localreader的“local”(而不是必须在客户端重新创建一个数组)?
非常感谢任何帮助。
Casbby
答案 0 :(得分:4)