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

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

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

提前致谢。

旧答案描述了如何实现您需要的行为。

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

重要的是要理解,您应该在每次选择/取消选择行后更新导航器按钮的状态(禁用/启用)。 因此,您应该使用jqGridBeforeSelectRow回调或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-disablePointerEventsui.jqgrid.cssui.jqgrid.min.css )中定义。 如果您不使用免费的jqGrid,那么您应该按以下方式定义它:

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

(参见ui.jqgrid.css代码的ui.jqgrid.css )。 如果要在不同设备上支持大多数所有Web浏览器(请参阅此处 ),则pointer-events: none非常重要。

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

小提琴演示链接

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

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

小提琴演示链接

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