我有一个测试用例here我认为我几乎涵盖了我在文档中找到的所有要求,以便能够查看网格行表单,就像在this example中选择一样。我现在可能太深入了,但我没有得到任何javascript错误/警告跟进...
我应该双击一条记录然后去查看网格,但它是黑洞我。我可以在这个问题上用一些新鲜的眼睛。寻呼机图标也不是双击似乎也不起作用。
有人可以帮助我吗?谢谢你的帮助。如果代码在您尝试时出错,我正在尝试解决问题,所以我会确保它在完成时检查语法。
答案 0 :(得分:1)
您遗漏的是以下代码:
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
属性进行大量阅读。
答案 1 :(得分:1)
首先,我建议您从当前的jqGrid 4.4.1中将jquery.jqGrid.js
文件(jqGrid 4.1.1的最小化版本)替换为jquery.jqGrid.src.js
。一般情况下,如果您在jquery.jqGrid.src.js
中拥有该问题,则应始终尝试在jquery.jqGrid.min.js
中重现相同的问题。 jqGrid将永久更改,将修复许多错误修复并添加新功能。例如,jqGrid 4.3.3修复了Google Chrome版本> = 19中描述的here的网格宽度的错误计算。它实现了修复,以支持当前版本的jQuery 1.6和许多其他东西。版本jqGrid 4.1.1已经快两年了,这在网络世界中确实很多。
此外,我建议您永远不要使用afterInsertRow
并始终使用gridview: true
。原因是网格的性能。理解使用页面上的元素(DOM元素)应该与计算机语言中已知的任何其他变量一样进行组织,这一点非常重要。原因是如果您在页面上更改一个元素,则Web浏览器必须重新计算页面上所有现有元素的位置样式等。至少Web浏览器必须验证是否需要更改所有元素。一个人称这样的程序为web browser reflow。我建议你阅读the answer我在哪里描述问题的更多细节。以同样的方式,您应该尝试减少loadComplete
或gridComplete
中的任何循环,其中您枚举所有行并在许多行中进行更改。在这种方式中,网格的性能会在很多时候降低。如果您使用另一种编写程序的方式,它将会像以前一样干净且易于理解,并且可以很快地运行。例如,在the answer中,您可以找到一个代码转换的真实示例。