jqGrid を作成するための再利用可能な関数を作成しました。
function createJqGrid(){
$("#" + gTableId).jqGrid({
datastr: jsonData,
datatype: 'jsonstring',
jsonReader: { repeatitems: false, root: function(obj) { return obj; }},
headertitles: true,
sortable: true,
rownumbers: isRowNum,
colNames: colHeadNames,
colModel: colModel,
rowNum: jsonData.length,
width: viewableWidth,
height: viewableHeight,
shrinkToFit: isShrink,
scrollOffset: 0,
onSelectRow: func,
loadComplete: function(data) {
alert(gTableId);
}
});
}
この関数とパラメータのすべての設定は、 内にカプセル化されていMyObject
ます。私の 4 つの jsp には、MyObject
. しかし、jqGrid の reloadGrid をトリガーすると、この関数を使用した最後のテーブルの ID が警告されます。
table1 は table1.jsp 内にあるtable2
は table2.jsp 内にある
table3 は table3.jsp 内にある table4
は table4.jsp 内にある
$("#table1").trigger("reloadGrid");
アラート "table4"
$("#table2").trigger("reloadGrid");
アラート "table4"
$("#table3").trigger("reloadGrid");
アラート "table4"
$("#table4").trigger("reloadGrid");
アラート "table4"
最後loadComplete
に作成されたテーブルの発動中です。なぜそうなのですか?