jqgrid - viewGridRow似乎什么都没做

时间:2012-12-10 23:21:13

标签: jquery jqgrid

我有一个测试用例here我认为我几乎涵盖了我在文档中找到的所有要求,以便能够查看网格行表单,就像在this example中选择一样。我现在可能太深入了,但我没有得到任何javascript错误/警告跟进...

我应该双击一条记录然后去查看网格,但它是黑洞我。我可以在这个问题上用一些新鲜的眼睛。寻呼机图标也不是双击似乎也不起作用。

有人可以帮助我吗?谢谢你的帮助。如果代码在您尝试时出错,我正在尝试解决问题,所以我会确保它在完成时检查语法。

2 个答案:

答案 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我在哪里描述问题的更多细节。以同样的方式,您应该尝试减少loadCompletegridComplete中的任何循环,其中您枚举所有行并在许多行中进行更改。在这种方式中,网格的性能会在很多时候降低。如果您使用另一种编写程序的方式,它将会像以前一样干净且易于理解,并且可以很快地运行。例如,在the answer中,您可以找到一个代码转换的真实示例。