gpt4 book ai didi

java - 无法使用新值重新加载 JGrid

转载 作者:行者123 更新时间:2023-11-30 11:35:15 25 4
gpt4 key购买 nike

我在 java 中使用 JQuery 和 JGrid。我有一个网格

     <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。

请帮忙......

最佳答案

abc的代码中至少可以看到两个重要的问题功能。

第一个是setGridParam的用法之前 JQuery("#table2").jqGrid({...}); 创建网格。你不能使用 setGridParam<table> 上.像JQuery("#table2").jqGrid({...});这样的电话转换为空 <table id="table2"></table> dives 和 tables 中相对复杂的结构中的元素,将用于显示网格。所以你应该首先创建网格(将空的 <table> 隐藏到网格中)并且只有在它之后你才能使用 setGridParam.trigger("reloadGrid")刷新网格内容。

第二个问题是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
});

它将创建主网格“#table1”和空的详细网格“#table2”。在主网格中选择行后,将重新加载详细网格的主体。详细信息网格向服务器发送两个附加参数:一个静态参数action=abc和另一个参数 hidden哪个值是主网格的rowid。

如果您使用 navGrid在主网格中,您可以添加 beforeRefresh回调(有关代码示例,请参见 the answer)。在beforeRefresh master grid回调可以调用clearGridData对于细节网格。因此,如果您要刷新主网格,则详细信息网格将为空,直到主网格中的行被选中。

关于java - 无法使用新值重新加载 JGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com