禁用 jqgrid 的编辑(添加、编辑和删除)按钮而不是隐藏(默认行为)
Disable edit(add, edit and delete) buttons of jqgrid instead of hiding(default behaviour)
Jqgrid 默认情况下使用值为 false 的适当属性隐藏添加、编辑和删除按钮。 (例如:导航网格或其他方式中的{add: false, edit: false, del: false})。
在这里,我想禁用这些按钮而不是隐藏它们。任何人都可以帮忙吗?我的意思是,想把默认的隐藏功能改成禁用。
提前致谢。
The old answer 描述了如何实现您需要的行为。
首先,了解导航栏所有按钮的 ID 很重要,您需要禁用这些按钮。 id 构建的规则可能会有所不同,具体取决于您使用(可以使用)的 jqGrid 版本和 jqGrid 的分支(free jqGrid, commercial Guriddo jqGrid JS or an old jqGrid in version <=4.7). I develop free jqGrid,如果您不这样做,我建议您使用它没有任何特殊限制。顶部和底部分页器的 ID 不同(请参阅 jqGrid 的 pager
和 toppager
选项)。您可以使用开发人员工具检查您需要的按钮的 ID禁用。
了解这一点很重要,您应该在每 selection/deselection 行之后更新导航器按钮的状态 (disable/enable)。因此,您应该使用 beforeSelectRow
回调或 jqGridBeforeSelectRow
事件。要在使用 jQuery UI CSS 时禁用按钮,您应该将 CSS classes ui-state-disabled
和 ui-jqgrid-disablePointerEvents
添加到按钮并启用,您应该删除 classes。如果您使用 Bootstrap CSS 而不是 jQuery UI CSS,那么您应该使用 "disabled ui-jqgrid-disablePointerEvents"
而不是 "ui-state-disabled ui-jqgrid-disablePointerEvents"
。 class ui-jqgrid-disablePointerEvents
在免费 jqGrid 的 ui.jqgrid.css
(ui.jqgrid.min.css
) 中定义。如果您不使用免费的 jqGrid,那么您应该按以下方式定义它:
.ui-jqgrid-disablePointerEvents {
pointer-events: none;
}
(参见 the lines of the code of ui.jqgrid.css
). The usage of pointer-events: none
is important if you want to support mostly all web browsers (see here)在不同的设备上。
当您将 {add:false, del:false} 传递给 navButtonAdd() 时,添加和删除按钮根本不会添加到网格中。要首先禁用它们,我们需要通过不将错误值传递给 add 和 del 来添加它们。添加它们后我们可以禁用它们添加 class 'ui-state-disabled'.
- 如果你想显示它但处于禁用状态,那么你应该使用。
$("#edit_pays_grid").addClass('ui-state-disabled');
- 或者,您也可以使用下面的代码,它根本不会将按钮添加到网格中。
.navGrid('#pays_grid_pager', { edit: false, add: false, del: false,
search: false, refresh: true})
Jqgrid 默认情况下使用值为 false 的适当属性隐藏添加、编辑和删除按钮。 (例如:导航网格或其他方式中的{add: false, edit: false, del: false})。
在这里,我想禁用这些按钮而不是隐藏它们。任何人都可以帮忙吗?我的意思是,想把默认的隐藏功能改成禁用。
提前致谢。
The old answer 描述了如何实现您需要的行为。
首先,了解导航栏所有按钮的 ID 很重要,您需要禁用这些按钮。 id 构建的规则可能会有所不同,具体取决于您使用(可以使用)的 jqGrid 版本和 jqGrid 的分支(free jqGrid, commercial Guriddo jqGrid JS or an old jqGrid in version <=4.7). I develop free jqGrid,如果您不这样做,我建议您使用它没有任何特殊限制。顶部和底部分页器的 ID 不同(请参阅 jqGrid 的 pager
和 toppager
选项)。您可以使用开发人员工具检查您需要的按钮的 ID禁用。
了解这一点很重要,您应该在每 selection/deselection 行之后更新导航器按钮的状态 (disable/enable)。因此,您应该使用 beforeSelectRow
回调或 jqGridBeforeSelectRow
事件。要在使用 jQuery UI CSS 时禁用按钮,您应该将 CSS classes ui-state-disabled
和 ui-jqgrid-disablePointerEvents
添加到按钮并启用,您应该删除 classes。如果您使用 Bootstrap CSS 而不是 jQuery UI CSS,那么您应该使用 "disabled ui-jqgrid-disablePointerEvents"
而不是 "ui-state-disabled ui-jqgrid-disablePointerEvents"
。 class ui-jqgrid-disablePointerEvents
在免费 jqGrid 的 ui.jqgrid.css
(ui.jqgrid.min.css
) 中定义。如果您不使用免费的 jqGrid,那么您应该按以下方式定义它:
.ui-jqgrid-disablePointerEvents {
pointer-events: none;
}
(参见 the lines of the code of ui.jqgrid.css
). The usage of pointer-events: none
is important if you want to support mostly all web browsers (see here)在不同的设备上。
当您将 {add:false, del:false} 传递给 navButtonAdd() 时,添加和删除按钮根本不会添加到网格中。要首先禁用它们,我们需要通过不将错误值传递给 add 和 del 来添加它们。添加它们后我们可以禁用它们添加 class 'ui-state-disabled'.
- 如果你想显示它但处于禁用状态,那么你应该使用。
$("#edit_pays_grid").addClass('ui-state-disabled');
- 或者,您也可以使用下面的代码,它根本不会将按钮添加到网格中。
.navGrid('#pays_grid_pager', { edit: false, add: false, del: false, search: false, refresh: true})