サブグリッドでローカルデータを処理できるようにしようとしています。ただし、[展開]をクリックすると、グリッドがどこかからデータをプルしようとしているように、[読み込み]ボックスが表示されます。subGridUrl
マスターグリッドのデータ型はですので、は必要ないと思いますdatatype:'local'
。他にやるべきことはありますか?
16953 次
1 に答える
25
ローカルデータを使用してサブグリッドを直接定義する方法はありませんが、subGridRowExpanded
(Subgrid as Grid)を使用して同じ動作を比較的簡単に実装できます。必要なのは、グリッドのROWIDによってサブグリッドのデータを内部構造から取得することだけです。たとえば、サブグリッドを次のようにマップする場合
var myGridData = [
// main grid data
{id: "m1", col1: "11", col2: "12"},
{id: "m2", col1: "21", col2: "22"}
],
mySubgrids = {
m1: [
// data for subgrid for the 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: [
// data for subgrid for the id=m2
{id: "s2a", c1: "xx", c2: "xy", c3: "xz"}
]
};
内部ではsubGridRowExpanded
、次のコードを使用してサブグリッドを作成できます。
$("#grid").jqGrid({
datatype: 'local',
data: myGridData,
colNames: ['Column 1', 'Column 2'],
colModel: [
{ name: 'col1', width: 200 },
{ name: 'col2', width: 200 }
],
...
subGrid: true,
subGridRowExpanded: function (subgridDivId, rowId) {
var subgridTableId = subgridDivId + "_t";
$("#" + subgridDivId).html("<table id='" + subgridTableId + "'></table>");
$("#" + subgridTableId).jqGrid({
datatype: 'local',
data: mySubgrids[rowId],
colNames: ['Col 1', 'Col 2', 'Col 3'],
colModel: [
{ name: 'c1', width: 100 },
{ name: 'c2', width: 100 },
{ name: 'c3', width: 100 }
],
...
});
}
});
デモは結果をライブで示しています。
于 2012-04-16T17:01:46.900 に答える