【问题标题】:jqgrid: multiselect checkbox valuesjqgrid:多选复选框值
【发布时间】:2017-02-04 05:44:20
【问题描述】:

当我将multiselect: true 添加到我的jqgrid 时,我看到jqgrid 为每一行添加了一个复选框。显示的每个复选框都未选中。有没有办法可以根据我用来填充网格的数据预设这些复选框?例如,如果我的网格有一个名为 selected 的列,而我正在显示的一行的选定值为 1,我想显示该复选框行被检查。当一行的选定字段为 0 时,我希望复选框保持未选中状态。这可能吗?

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    您的问题的答案取决于您使用的 jqGrid 的分支。我开发了免费的 jqGrid fork 并实现了multiPageSelection: true 选项。只需填写selarrrow 数组(例如,您可以根据从服务器返回的数据在beforeProcessing 内部填写)。查看为the answer 创建的the demo。它表明selarrrow 数组包含的 id 与当前页面上的更多。在分页或初始填充空闲 jqGrid 期间设置 chechboxes 的状态 基于 selarrrow 数组。它的工作方式与自定义格式化程序一样有效,rowattrcellattr

    如果您无法升级到免费的 jqGrid,那么您可以在 loadComplete 内调用 setSelection(请参阅 the old answer)。在使用 multiPageSelection: true 的情况下,它会运行得更慢,但它会起作用。

    【讨论】:

      【解决方案2】:

      loadComplete,有这样的东西

      var i;
      var rowids = $('#myTable').jqGrid('getDataIDs');
      for (i = 0;i < count = rowids.length;i+=1) {
          // condition to mark it check
          $('#myTable').jqGrid('setSelection', rowids[i], false);
      }
      

      干杯!

      【讨论】:

        【解决方案3】:

        您需要遍历数据并应用检查。

        【讨论】:

        • 我很好奇我会怎么做,因为 jqgrid 动态添加的“cb”列不是我定义的列模型的一部分。
        • 是的,您需要在生成列后执行此操作。基于为所有复选框生成的索引 id
        • 我如何知道列的生成时间?
        • 一旦页面被重新渲染。或者更好地使用格式化程序选项编写自定义函数来应用更改。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-20
        • 2011-12-15
        • 1970-01-01
        • 2012-01-25
        • 1970-01-01
        • 2013-06-06
        相关资源
        最近更新 更多