【问题标题】:CheckBox as jqGrid FilterCheckBox 作为 jqGrid 过滤器
【发布时间】:2016-02-08 15:03:08
【问题描述】:

有没有机会使用 CheckBox 作为 jqGrid 过滤器? 假设,我的字段值只有 0 和 1。 如果复选框将被选中,则过滤值将为 1,不过滤。

【问题讨论】:

  • 你想如何显示第三种状态:不按列过滤?由于要求具有三态输入,因此通常在列中使用stype: "select", searchoptions: { sopt: ["eq", "ne"], value: ":Any;1:Yes;0:No" }。它使用三个显示值创建选择:"Any""Yes""No"(或您喜欢的其他一些文本)。
  • 你是对的。然后我不希望在未选中时进行过滤。

标签: jqgrid


【解决方案1】:

为什么不使用过滤器工具栏中的复选框,原因很简单:需要三态复选框:选中、未选中和未定义:

  • “已检查”状态表示按已检查(在您的情况下为 1 个值)过滤
  • “未选中”状态表示按未选中过滤(在您的情况下为 0 值)
  • “未定义”状态表示不按列过滤

因为它主要使用类似的属性

stype: "select", searchoptions: { sopt: ["eq", "ne"], value: ":Any;1:Yes;0:No" }

在过滤器工具栏中有下拉选择元素。文本“Any”、“Yes”和“No”,如值 1 和 0,可以根据您的要求更改为其他值。

更新:jqGrid 允许通过使用stype: "custom" 并实现searchoptionscustom_elementcustom_value 回调来创建自定义搜索界面,请参阅the old answer 和搜索对话框。我仍然不建议您这样做,因为它会使事情变得更加复杂,而对用户没有任何实际好处。我相信有些用户会要求你过滤非检查状态:用户越多,不同的意见就越多。 Select是标准接口,人人皆知,人人都明白它的含义。

我将旧的演示修改为the following,它展示了搜索工具栏中stype: "custom" 的可能性。点击过滤工具栏的自定义控件后,会看到如下图:

我在 jqGrid 的原因 free jqGrid fork 的演示中使用了 - 我在 2014 年底开发的 fork。

【讨论】:

  • 如果我只想有两个状态,未定义和检查怎么办?
  • @Lukaszaq:jqGrid 允许通过使用stype: "custom" 并实现searchoptionscustom_elementcustom_value 回调来创建自定义搜索界面,请参阅stackoverflow.com/a/12744780/315935 和搜索对话框。我仍然不建议您这样做,因为它会使事情变得更加复杂,而对用户没有任何真正的好处。我相信有些用户会要求你过滤非检查状态:用户越多,不同的意见就越多。 Select是标准界面,人人皆知,每个人都以同样的方式理解它的含义。
  • @Lukaszaq:我更新了一个旧的演示来演示stype: "custom"的用法:见the modified demo
猜你喜欢
  • 2014-08-24
  • 2011-08-14
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
相关资源
最近更新 更多