Bug onSelectRow in free-jqgrid
问题描述:
我使用free-jqGrid v4.14.0。我有一个表格,当我点击这个表格中的一行时,我执行一个存储过程,并在另一个表格中输入结果。 问题是,当你第一次点击表中的一行时,数据不会加载到第二个表中,并且当第二个按钮被点击时,数据就会出现,而这个问题只会发生一次,下面的点击会立即加载将数据放入第二个表中。 当你第一次点击浏览器控制台,你可以看到URL存储过程是加载:“@ Url.Action(‘GetAccident’)”,Bug onSelectRow in free-jqgrid
$(document).ready(function() {
$("#jqg").jqGrid({
url: '@Url.Action("GetAccident")',
datatype: "json",
colNames: ['id_Accident', .......],
colModel: [
{ name: 'id_Accident', index: 'id_Accident', autowidth: true, sortable: false },
.....................
.....................
],
guiStyle: "bootstrap",
iconSet: "fontAwesome",
pager: "#pager",
rowList: [10, 20, 30],
rowNum: 10,
loadonce: false,
onSelectRow:
function (idRow) {
celValue = $('#jqg').jqGrid('getCell', idRow, 'id_Accident');
jQuery("#jqg1").jqGrid('setGridParam', { url: '@Url.Action("GetOrganizationCulpritByIdAccident")?celValue=' + celValue, page: 1 }).trigger('reloadGrid');
}
});
jQuery("#jqg1").jqGrid({
url: '@Url.Action("GetOrganizationCulpritByIdAccident")?celValue=' + 0,
datatype: "json",
colNames: ['id_Accident', 'Name Organization'],
colModel: [
{ name: 'id_Accident', index: 'id_Accident', autowidth: true, stype: 'text', sortable: true },
{ name: 'Name', index: 'Name', autowidth: true, sortable: true }
],
guiStyle: "bootstrap",
pager: "#pager1",
rowList: [10, 20, 30],
rowNum: 10,
});
答
我无法重现该问题。您可以检查演示https://jsfiddle.net/OlegKi/ed0yLkce/1/的网络流量。我在第二个网格作为初始选项,以防止不必要的Ajax请求使用
datatype: "local"
。我在这两个网格中另外使用idPrefix
以确保不会与重复的ID冲突。您将在Developer Tools的Network选项卡中看到,例如https://fiddle.jshell.net/echo/json?celValue=test2
的请求将发送给第二行。
您当前的代码包含许多小问题(也不是很小)。而且,你没有描述'GetOrganizationCulpritByIdAccident'的接口。哪个值可以有'celValue'参数(它的名字有点奇怪)?两个网格中可以使用什么ID(rowid)? Name是否是第二个网格的唯一列(id_Accident列应该包含相同值的重复值)?你写了“...并且当第二个按钮被点击时......”。什么是“第二个按钮”? – Oleg
您写道:“您可以看到url存储过程正在加载:'@ Url.Action(”GetAccident“)'”,但您设置了''@ Url.Action(“GetOrganizationCulpritByIdAccident”)?celValue =''而不是' 'onSelectRow'中的GetAccident'。我可以继续...您可以查看您的问题的文本并修复它吗?你能否描述更详细的**你想要实现的**?例如,你最初在第二个网格中使用'datatype:“json”'。这意味着你用一些数据填充它,或者至少向服务器发出Ajax请求。如果网格最初应该是空的,那么'datatype:“local”'会更好。 – Oleg
您使用了大量不需要或错误的选项/属性。例如,可以将'{name:'id_Accident',index:'id_Accident',autowidth:true,stype:'text',sortable:true}'(参见第二个网格)缩减为'{name:'id_Accident'} '。下一个问题:变量'celValue'没有声明('var'丢失)。 – Oleg