问题 有没有办法测试jqGrid是否有数据?


我正在尝试启用和禁用jqgrid上的自定义按钮,但只有在网格为空时才启用该按钮,然后在没有时禁用。

有没有办法测试网格是否有数据?

谢谢。


5422
2018-03-13 14:17


起源



答案:


您可以测试以查看网格中有多少条记录。如果没有行,则网格为空:

jQuery('#grid').jqGrid('getGridParam', 'reccount');

请参阅文档 RECCOUNT

只读属性。确定网格中的确切行数。

此外,由于默认值是 0 你需要确保在加载数据后调用此函数,例如在 loadComplete 事件。


12
2018-03-13 14:25



嘿,我添加了一些我做过的代码......我不确定这是不是这样做的。从“var count”看。 - pundit
@pundit - 我需要看一个更大的代码示例,以了解所有内容是如何组合在一起的,尤其是如何填充网格。但是对你来说更好的方法是在初始化时创建寻呼机和按钮,然后在尝试填充网格后,如果网格为空,则动态隐藏或禁用按钮。此外,您在这里提出的问题是一个很好的一般性问题,您可能想要问一个关于您的特定代码的新问题(并从中链接到它)。 - Justin Ethier
@Justin ..在这里看到新问题 stackoverflow.com/q/9688461/213982 这有完整的代码实现 - pundit
@pundit - 谢谢!我刚刚发布了这个问题的答案,希望它对你有用...... - Justin Ethier


答案:


您可以测试以查看网格中有多少条记录。如果没有行,则网格为空:

jQuery('#grid').jqGrid('getGridParam', 'reccount');

请参阅文档 RECCOUNT

只读属性。确定网格中的确切行数。

此外,由于默认值是 0 你需要确保在加载数据后调用此函数,例如在 loadComplete 事件。


12
2018-03-13 14:25



嘿,我添加了一些我做过的代码......我不确定这是不是这样做的。从“var count”看。 - pundit
@pundit - 我需要看一个更大的代码示例,以了解所有内容是如何组合在一起的,尤其是如何填充网格。但是对你来说更好的方法是在初始化时创建寻呼机和按钮,然后在尝试填充网格后,如果网格为空,则动态隐藏或禁用按钮。此外,您在这里提出的问题是一个很好的一般性问题,您可能想要问一个关于您的特定代码的新问题(并从中链接到它)。 - Justin Ethier
@Justin ..在这里看到新问题 stackoverflow.com/q/9688461/213982 这有完整的代码实现 - pundit
@pundit - 谢谢!我刚刚发布了这个问题的答案,希望它对你有用...... - Justin Ethier


来自 文档

RECCOUNT  整数Readonly属性

确定网格中的确切行数。不要混用这个   带记录参数。相反,在大多数情况下,他们是平等的   有一种情况并非如此。例如,您定义rowNum   参数15,但是从服务器记录参数= 20返回,然后   records参数为20,reccount参数为15,   在网格中你将有15条记录。


2
2018-03-13 14:23





在loadcomplete事件中,您可以访问绑定到网格的数据对象,并且可以检查记录数。在那里,您还可以设置按钮

loadComplete: function(data){ 
    //data.Rows.length or call reccount
   },

1
2018-03-13 14:23



我刚才看到了这个答案。 stackoverflow.com/a/1019528/213982。这是这样的吗? - pundit
你不会做jQuery(“#grid_id”)。getGridParam(“records”)调用它是旧api,loadcomplete中的“data”将包含那些记录,你可以从中获取计数或调用reccount方法作为其他答案已经表明了。但我确实认为你会想要在loadcomplete事件中执行此操作,以便您可以更改按钮 - Chad Ferguson
同意 - 见 stackoverflow.com/questions/9688461/... - Justin Ethier