我正在使用JQuery和JGrid与java。我有一个网格
<script>
jQuery("#table1").jqGrid({
..............
............
});
我有另一个网格
function abc {
var id = firstgridid;
if(number>0) {
// working but with the old value
$("#table2").jqGrid('setGridParam', { url: 'JGridA?action=abc&hidden='+id,page:1}).trigger("reloadGrid");
JQuery("#table2").jqGrid({
url:'JGridServlet?action=comm&hidden='+id,
.............
});
}
</script>
在第二个网格中,我将第一个网格中选择的id的值作为url传递。每次我从第一个网格中选择一行, 点击“显示详细信息”按钮后, 函数abc()将执行, 应传递id,并在第二个网格中显示相应的行(id信息)。
我能够获取所选行的id,并能够重新加载第二个网格,但与第二个网格相关的查询将采用首先选择的id。但我需要当前选择的ID。
请帮助.......
答案 0 :(得分:1)
我们可以在abc
函数的代码中看到至少两个重要问题。
第一个是在{em>创建网格的 第二个问题是在函数 更新:如果您需要实施主/详细信息方案,您可以执行以下操作: 它将创建主网格“#table1”和空细节网格“#table2”。在主网格中选择行后,将重新加载细节主体的主体。细节网格向服务器发送两个附加参数:一个静态参数 如果您在主网格中使用setGridParam
之前使用JQuery("#table2").jqGrid({...});
。您无法在setGridParam
上使用<table>
。像JQuery("#table2").jqGrid({...});
之类的调用会在相对复杂的潜水和表格结构中转换空<table id="table2"></table>
元素,这些结构将用于显示网格。所以你应该首先创建网格(隐藏空<table>
到网格),然后才能使用setGridParam
或.trigger("reloadGrid")
刷新网格内容。< / p>
JQuery("#table2").jqGrid({...});
中使用abc
,您多次调用 。正如我之前所描述的,调用JQuery("#table2").jqGrid({...});
将空<table>
转换为网格。因此,只能进行一次调用。对于第二次加载网格,您应该使用setGridParam
和.trigger("reloadGrid")
来刷新网格内容。// create master grid
$("#table1").jqGrid({
datatype: "json",
url: "masterGridUrl",
onSelectRow: function (rowid, state) {
if (state) { // if not the same row was previously selected
// refresh detail grid
$("#table2").jqGrid("setGridParam", { datatype: "json"})
.trigger("reloadGrid", [{page: 1}]);
}
},
... // another options
});
// create details grid without filling the data initially
$("#table2").jqGrid({
datatype: "json", // we use "local" instead of "json" to have to request to the server
url: "JGridA",
postData: {
action: "abc",
hidden: function () {
// id of currently selected row
return $("#table1").jqGrid("getGridParam", "selrow");
}
},
... // other options
});
action=abc
和另一个参数hidden
,其值是主网格的rowid。navGrid
,则可以添加beforeRefresh
回调(有关代码示例,请参阅the answer)。在主网格的beforeRefresh
回调中,您可以为详细信息网格调用clearGridData
。因此,如果要刷新主网格,则详细网格将为空,直到选择主网格中的行为止。