jqGrid子网格,带“0”;“本地”;资料

jqGrid子网格,带“0”;“本地”;资料,jqgrid,local,subgrid,Jqgrid,Local,Subgrid,我正试图让我的子网格处理本地数据。但是,当我单击“展开”时,我只得到一个加载框,就像网格试图从某处提取数据一样。我假设我不需要子网格URL,因为主网格的数据类型是数据类型:'local'。还有什么我应该做的吗?没有直接的方法用本地数据定义子网格,但是使用subGridRowExpanded()可以相对容易地实现相同的行为。我们需要做的只是通过网格的rowid从一些内部结构中获取子网格的数据。例如,如果将子栅格映射为 var myGridData=[ //主网格数据 {id:“m1”,col1:“

我正试图让我的子网格处理本地数据。但是,当我单击“展开”时,我只得到一个加载框,就像网格试图从某处提取数据一样。我假设我不需要
子网格URL
,因为主网格的数据类型是
数据类型:'local'
。还有什么我应该做的吗?

没有直接的方法用本地数据定义子网格,但是使用
subGridRowExpanded
()可以相对容易地实现相同的行为。我们需要做的只是通过网格的rowid从一些内部结构中获取子网格的数据。例如,如果将子栅格映射为

var myGridData=[
//主网格数据
{id:“m1”,col1:“11”,col2:“12”},
{id:“m2”,col1:“21”,col2:“22”}
],
mySubgrids={
m1:[
//id=m1的子网格数据
{id:“s1a”,c1:“aa”,c2:“ab”,c3:“ac”},
{id:“s1b”,c1:“ba”,c2:“bb”,c3:“bc”},
{id:“s1c”,c1:“ca”,c2:“cb”,c3:“cc”}
],
m2:[
//id=m2的子网格数据
{id:“s2a”,c1:“xx”,c2:“xy”,c3:“xz”}
]
};
subGridRowExpanded
的内部,您可以使用以下代码创建子网格:

$(“#网格”).jqGrid({
数据类型:“本地”,
数据:myGridData,
colNames:[“第1列”、“第2列”],
colModel:[
{name:'col1',宽度:200},
{name:'col2',宽度:200}
],
...
子网格:对,
subGridRowExpanded:函数(subgridDivId,rowId){
var subgridTableId=subgridDivId+“\u t”;
$(“#”+subgridDivId).html(“”);
$(“#”+subgridTableId).jqGrid({
数据类型:“本地”,
数据:mySubgrids[rowId],
colname:['Col 1','Col 2','Col 3'],
colModel:[
{名称:'c1',宽度:100},
{名称:'c2',宽度:100},
{名称:'c3',宽度:100}
],
...
});
}
});
实时显示结果:


回答得很好,奥列格。我将在我的代码中实现这一点!事实上,我正在将此功能与从一个网格到另一个网格(从另一个网格)的拖放功能结合使用。@oleg回答得很好,它在一个重大问题上帮助了我,尽管我只能向上投票一次(@VikasGupta:我很高兴能帮助你。不客气!@Oleg在这篇
mySubgrids[rowId]
rowId
是父网格和子网格之间的连接。那么在模型中查看如何?
在父网格行的
对话框中查看
数据也将包含子网格数据?@CJRamki:我不确定我是否理解你的意思。一个需要不同的(正确)每一行的子网格和行由唯一的rowid标识,在数据模型中具有某种意义(例如,来自数据库的id).Now about view/model.jqGrid从服务器上获取每个Ajax的jqGrid数据。因此,只需在视图中使用空表,数据模型的绑定应仅在URL中。视图主要表示包含数据的HTML片段。在Ajax情况下,数据视图将为空,您只需在MVC控制器上执行一些操作即可。