Jquery 如何将主干模型绑定到jqGrid?

Jquery 如何将主干模型绑定到jqGrid?,jquery,jqgrid,backbone.js,Jquery,Jqgrid,Backbone.js,我将主干网与jQuery和jqGrid一起使用,在将主干网集合与jqGrid绑定时遇到了问题 这是我从服务器得到的响应: {"DogModel":[ {"name":"Jane","breed":"Great Dane"}, {"name":"Rocky","breed":"golden Retriver"}, {"name":"Jim","breed":"Lab"} ]} 鉴于此,我得到的数据如下 [{"name":"Jane","breed":"Great Dane

我将主干网与jQuery和jqGrid一起使用,在将主干网集合与jqGrid绑定时遇到了问题

这是我从服务器得到的响应:

{"DogModel":[
    {"name":"Jane","breed":"Great Dane"},
    {"name":"Rocky","breed":"golden Retriver"},
    {"name":"Jim","breed":"Lab"}
]}
鉴于此,我得到的数据如下

[{"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);
    }
});
我尝试将
数据:this.collection.models.toJSON()
替换为
数据:this.collection.models[0].toJSON()
数据:this.collection.toJSON()
,它会引发意外的字符分析错误


我需要做什么才能将模型绑定到jqGrid?

我不太了解jqGrid,但我查看了他们的示例,找到了一个在网格上添加模型的解决方案

您需要将
数据类型
更改为
本地
,并手动添加jqGrid上的每一行。

最好的方法是查看代码在JSFIDLE上的工作情况,并了解代码的工作原理:

您应该尝试:

datatype: 'local',
data:this.collection.toJSON()

这对我有用。

谢谢你。将数据类型更改为本地工作。但我们也做了一些调整。使用来自服务器的相同响应(即,我没有从parse返回res.DogModel,而是按原样返回res)。设置数据:Dogs.models[0].get('dogModel')就可以了。您不想对大型数据集使用addRowData。但这并不能解释在模型更改时如何重新呈现该行!,我想我们需要将这种逻辑与此一起编写。我认为JQGrid需要一个特殊的插件来适应这种行为。同时,我建议在主干模型和Collection fetch success()方法中加入钩子