【问题标题】:Is there a way to test if jqGrid has data or not?有没有办法测试 jqGrid 是否有数据?
【发布时间】:2012-03-13 14:17:06
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

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

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

    查看reccount的文档:

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

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

    【讨论】:

    • 嘿,我已经添加了一些我所做的代码......我不确定这是否是它的完成方式。从“var count”看。
    • @pundit - 我必须查看更大的代码示例才能了解所有内容如何组合在一起,尤其是如何填充网格。但是对您来说更好的方法是在初始化时创建寻呼机和按钮,然后在您尝试填充网格后动态隐藏或禁用按钮。此外,您在这里提出的问题是一个很好的一般性问题,您可能想就您的特定代码提出一个新问题(并从这个问题链接到它)。
    • @Justin.. 在这里查看新问题 stackoverflow.com/q/9688461/213982 这有完整的代码实现
    • @pundit - 谢谢!我刚刚发布了该问题的答案,希望对您有用...
    【解决方案2】:

    来自docs

    reccount 整数只读属性

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 我不久前看到了这个答案。 stackoverflow.com/a/1019528/213982。是这样的吗?
      • 你不会做 jQuery("#grid_id").getGridParam("records") 调用它是旧的 api 并且 loadcomplete 中的“数据”将包含这些记录,你可以从中获取计数或如其他答案所示调用 reccount 方法。但我确实认为您会希望在 loadcomplete 事件中执行此操作,以便您可以更改按钮
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 2015-03-25
      相关资源
      最近更新 更多