2017-08-22 34 views
2

的jqGrid默认的按钮,使添加,编辑和删除隐藏在使用带有值设置为false相应的属性按钮。 (例如:导航网格中的{add:false,edit:false,del:false}或其他方式)。禁用编辑(添加,编辑和删除)的jqGrid,而不是隐藏(默认行为)

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

在此先感谢。

回答

1

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

首先,这是非常重要的,你知道导航栏的所有按钮,你需要禁用的IDS。 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)。如果您想要支持大多数不同设备上的所有Web浏览器(请参阅here),则使用pointer-events: none非常重要。

+0

感谢您的答复,我在这里看着窗外仅用于添加,编辑和删除按钮(jqGrid的默认编辑按钮)。正如将{refresh:true,edit:false,add:false,del:false,search:true}传递给navGrid,它将使这三个按钮不可见/隐藏。在这里,我希望它们可见但处于禁用模式。 – santoshM

+0

@santoshM:不客气!请仔细阅读我的答案。了解您使用的jqGrid版本以及jqGrid的哪个版本非常重要。您使用哪个寻呼机('toppager'或'pager'或两者)?你是否[旧的回答](https://stackoverflow.com/a/5376355/315935)[试用版](http://www.ok-soft-gmbh.com/jqGrid/EdableDisableEditDelNavigatorButtons.htm),我参考了哪些?应始终启用“添加”按钮,但只有在选择某行并且该行可编辑时才应启用编辑和删除。 – Oleg

+0

使用我的修复程序,如果我将{refresh:true,edit:false,add:false,del:false,search:true}传递给navGrid,则应禁用并隐藏按钮。 – santoshM

0

当您通过{添加:假的,德尔:假}与navButtonAdd(),添加和删除按钮不是在所有添加到网格中。要首先禁用它们,我们需要通过不传递虚假值来添加和删除它们来添加它们。添加它们后,我们可以禁用它们,添加类'ui-state-disabled'。

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

Fiddle Demo link

  • 或者,您也可以使用下面的代码,这将没有添加按钮到电网。

。navGrid( '#pays_grid_pager',{编辑:假的,加:假的,德尔:假的, 搜索:假的,刷新:真})

Fiddle Demo link

相关问题