我正在使用Backbone以及jQuery和jqGrid,并遇到将主干集合与jqGrid绑定的问题。
这是我从服务器获得的响应:
{"DogModel":[
{"name":"Jane","breed":"Great Dane"},
{"name":"Rocky","breed":"golden Retriver"},
{"name":"Jim","breed":"Lab"}
]}
在View中,我得到的数据如
[{"name":"Jane","breed":"Great Dane"},
{"name":"Rocky","breed":"golden Retriver"},
{"name":"Jim","breed":"Lab"}]
//视图中的jqGgrid代码
jQuery("#dogsList").jqGrid({
datatype: 'json',
data:this.collection.models.toJSON(),
width:'100%',
colNames:['name', 'breed'],
colModel:[
{name:'name', align:'left'},
{name:'breed', align:'left'}
],
loadComplete : function(data) {
alert('grid loading completed ' + data);
},
loadError : function(xhr, status, error) {
alert('grid loading error' + error);
}
});
我尝试用data:this.collection.models.toJSON()
和data:this.collection.models[0].toJSON()
替换data:this.collection.toJSON()
,它会引发意外的字符解析错误。
我需要做什么才能将模型绑定到jqGrid?
答案 0 :(得分:2)
我不完全了解jqGrid,但我看了他们的例子,我找到了一个解决方案,可以在网格上添加模型。
您需要将datatype
更改为local
并手动添加jqGrid上的每一行。
最好的方法是看代码在jsFiddle上运行并了解代码的工作原理:http://jsfiddle.net/Atinux/qM98D/
答案 1 :(得分:1)
你应该尝试:
datatype: 'local',
data:this.collection.toJSON()
这适合我。