【发布时间】:2018-01-30 12:08:04
【问题描述】:
默认情况下,Jqgrid 在使用值为 false 的适当属性时隐藏添加、编辑和删除按钮。 (例如:导航网格中的 {add: false, edit: false, del: false} 或其他方式)。
在这里,我想禁用这些按钮而不是隐藏。任何人都可以帮助解决这个问题。我的意思是,想把默认的隐藏功能改成禁用。
提前致谢。
【问题讨论】:
标签: javascript jquery jqgrid
默认情况下,Jqgrid 在使用值为 false 的适当属性时隐藏添加、编辑和删除按钮。 (例如:导航网格中的 {add: false, edit: false, del: false} 或其他方式)。
在这里,我想禁用这些按钮而不是隐藏。任何人都可以帮助解决这个问题。我的意思是,想把默认的隐藏功能改成禁用。
提前致谢。
【问题讨论】:
标签: javascript jquery jqgrid
$("#edit_pays_grid").addClass('ui-state-disabled');
.navGrid('#pays_grid_pager', { 编辑:假,添加:假,德尔:假, 搜索:假,刷新:真})
【讨论】:
The old answer 描述了如何实现您需要的行为。
首先,了解导航栏所有按钮的 ID 很重要,您需要禁用这些按钮。 id 构建的规则可能会有所不同,具体取决于您使用(可以使用)的 jqGrid 版本以及 jqGrid 的分支(free jqGrid、商业Guriddo jqGrid JS 或版本 free jqGrid,如果您没有任何特殊限制,我建议您使用它。顶部和底部寻呼机的 id 不同(请参阅 jqGrid 的 pager 和 toppager 选项)。您可以只使用开发者工具来检查您需要禁用的按钮的 ID。
理解这一点很重要,您应该在每次选择/取消选择行后更新导航器按钮的状态(禁用/启用)。因此,您应该使用beforeSelectRow 回调或jqGridBeforeSelectRow 事件。要在使用 jQuery UI CSS 的情况下禁用按钮,您应该将 CSS 类 ui-state-disabled 和 ui-jqgrid-disablePointerEvents 添加到按钮并启用,您应该删除这些类。如果您使用 Bootstrap CSS 而不是 jQuery UI CSS,那么您应该使用 "disabled ui-jqgrid-disablePointerEvents" 而不是 "ui-state-disabled ui-jqgrid-disablePointerEvents"。 ui-jqgrid-disablePointerEvents 类在 free jqGrid 的 ui.jqgrid.css (ui.jqgrid.min.css) 中定义。如果您不使用免费的 jqGrid,那么您应该按以下方式定义它:
.ui-jqgrid-disablePointerEvents {
pointer-events: none;
}
(参见ui.jqgrid.css的代码the lines)。如果您想在不同的设备上支持几乎所有的网络浏览器(参见here),pointer-events: none 的使用就很重要。
【讨论】:
toppager 或 pager 或两者)?您是否尝试过 the old answer 中的 the demo,我引用了它? “添加”按钮应始终启用,但只有在选择了某行且该行可编辑时才应启用“编辑”和“删除”。
not-editable-row 类),则在选择行时启用该按钮。
del:false,则删除按钮将完全不会创建。很明显,您不应该使用del:false,而是在navGrid 创建后直接禁用Delete 按钮。您还需要使用beforeSelectRow 回调或jqGridBeforeSelectRow 事件在选择行时重置按钮的状态(启用或禁用),并在重新加载网格时重置状态(例如在loadComplete 内部)。
当您使用 navButtonAdd() 传递 {add:false, del:false} 时,添加和删除按钮根本不会添加到网格中。要首先禁用它们,我们需要通过不向 add 和 del 传递 false 值来添加它们。添加它们后,我们可以通过添加“ui-state-disabled”类来禁用它们。
【讨论】: