禁用jqgrid的编辑(添加,编辑和删除)按钮而不是隐藏(默认行为)

时间:2017-08-22 09:22:08

标签: javascript jquery jqgrid

默认情况下,Jqgrid使用值为false的相应属性隐藏添加,编辑和删除按钮。 (例如:导航网格中的{add:false,edit:false,del:false}或其他方式)。

在这里,我想禁用这些按钮而不是隐藏。任何人都可以帮助这个。我的意思是说,想要将隐藏的默认功能更改为禁用。

提前致谢。

3 个答案:

答案 0 :(得分:2)

  • 如果要显示但处于禁用状态,则应使用。
$("#edit_pays_grid").addClass('ui-state-disabled');

Fiddle Demo link

  • 或者,您也可以使用下面的代码,它们根本不会将按钮添加到网格中。
  

.navGrid('#pays_grid_pager',{edit:false,add:false,del:false,   search:false,refresh:true})

Fiddle Demo link

答案 1 :(得分:1)

The old answer描述了如何实现您需要的行为。

首先,您必须知道导航条的所有按钮的ID,您需要禁用它们。 id构建的规则可能会有所不同,具体取决于您使用(可以使用)的jqGrid版本以及jqGrid(free jqGrid,商业Guriddo jqGrid JS的分支或版本中的旧jqGrid = 4.7)。我开发free jqGrid,如果您没有任何特殊限制,我建议您使用它。顶部和底部寻呼机的ID不同(请参阅jqGrid的pagertoppager选项)。您可以使用开发人员工具来检查需要禁用的按钮的ID。

了解每个选择/取消选择行后,应更新导航按钮的状态(禁用/启用),这一点非常重要。因此,您应该使用beforeSelectRow回调或jqGridBeforeSelectRow事件。要在使用jQuery UI CSS时禁用该按钮,您应该将CSS类ui-state-disabledui-jqgrid-disablePointerEvents添加到按钮并启用,您应该删除这些类。如果您使用Bootstrap CSS而不是jQuery UI CSS,那么您应该使用"disabled ui-jqgrid-disablePointerEvents"而不是"ui-state-disabled ui-jqgrid-disablePointerEvents"。类ui-jqgrid-disablePointerEvents在免费jqGrid的ui.jqgrid.cssui.jqgrid.min.css)中定义。如果您不使用免费的jqGrid,那么您应该按以下方式定义它:

.ui-jqgrid-disablePointerEvents {
    pointer-events: none;
}

(请参阅ui.jqgrid.css代码的the lines)。如果您想在不同设备上支持大多数所有网络浏览器(请参阅here),则pointer-events: none的使用非常重要。

答案 2 :(得分:0)

使用navButtonAdd()传递{add:false,del:false}时,添加和删除按钮根本没有添加到网格中。要首先禁用它们,我们需要通过不将false值传递给add和del来添加它们。添加它们之后,我们可以禁用它们添加“ui-state-disabled”类。