我在这里有一个测试用例,我想我几乎涵盖了我在文档中可以找到的所有要求,以便能够像在本示例中选择时一样查看网格行表单。我现在可能对此太深入了,但我根本没有收到任何 JavaScript 错误/警告来跟进......
我应该双击一条记录并查看网格,但它让我陷入了黑洞。我可以用一些新的眼光来看待这个问题。寻呼机图标和双击似乎也不起作用。
任何人都可以帮助我吗?谢谢你的帮助。如果代码在您尝试时出错,我正在尝试一些东西,所以我会确保在完成时检查它的语法。
首先,我建议您将jquery.jqGrid.js
jqGrid 4.1.1 的最小化版本的文件替换jquery.jqGrid.src.js
为当前的 jqGrid 4.4.1。一般来说,jquery.jqGrid.src.js
如果你有相同的问题,你应该总是尝试在jquery.jqGrid.min.js
. jqGrid 将永久更改,将修复许多错误修复并添加新功能。例如 jqGrid 4.3.3 修复了此处描述的 Google Chrome 版本 >=19 中网格宽度的错误计算。它实施了修复以支持当前版本的 jQuery 1.6 和许多其他东西。jqGrid 4.1.1 版本已经快两年了,这在网络世界中确实很重要。
此外,我建议您永远不要使用afterInsertRow
并始终使用gridview: true
. 原因是网格的性能。理解页面上的元素(DOM 元素)的工作应该像计算机语言中已知的任何其他变量一样以其他方式组织,这一点非常重要。原因是如果您更改页面上的一个元素,Web 浏览器必须重新计算页面上所有现有元素的位置样式等。至少网络浏览器必须验证所有元素是否需要更改。一种将此类程序命名为web browser reflow。我建议您阅读我更详细地描述问题的答案。以同样的方式,您应该尝试减少任何循环loadComplete
或者gridComplete
您枚举所有行并在多行中进行更改。在这种方式下,网格的性能会降低很多倍。如果您使用另一种编写程序的方式,它将像以前一样干净且易于理解,并且可以快速运行。例如,在答案中,您可以找到这种代码转换的一个真实示例。
您缺少的是以下代码:
onSelectRow: function (id) {
$(this).jqGrid('viewGridRow', id, viewParam);
},
应该放在哪里:
$grid.jqGrid({
... // Some code attribute
onSelectRow: function (id) {
$(this).jqGrid('viewGridRow', id, viewParam);
},
... // Some more code attributes
});
编辑您的自定义 javascript event.js
。一旦您学会了如何使用它并应用它,请选择该行。然后,您应该能够拉出一个弹出窗口或您想做的其他事情。这意味着您将需要大量阅读特定onSelectRow
属性。