如何将Backbone模型绑定到jqGrid?
我正在使用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?
我不完全了解jqGrid,但我看了他们的例子,我找到了一个解决方案,在你的网格上添加模型。
您需要将datatype
更改为local
并手动添加jqGrid上的每一行。
最好的方法是看到代码在jsFiddle上运行并了解代码是如何工作的: http : //jsfiddle.net/Atinux/qM98D/
你应该试试:
datatype: 'local', data:this.collection.toJSON()
这对我有用。