gpt4 book ai didi

jquery - jqgrid:多选和禁用检查(有条件)

转载 作者:行者123 更新时间:2023-12-03 21:49:51 26 4
gpt4 key购买 nike


我喜欢 jqGrid,但有时事情看起来比应有的更复杂。
我想要实现的是在每一行上都有一个复选框,以便用户可以选择要提交/处理的行。
不过,我需要阻止一些复选框,因为用户可能没有对该特定行的授权。

我尝试设置multiselect: true,然后尝试隐藏复选框:

loadComplete: function (data) {
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
if (data.rows[i].cell[7] == 'false') {
$("#jqg_OrdersGrid_" + data.rows[i].id).css("visibility", "hidden");
}
}
}
},

它工作得很好,但是.jqGrid('getGridParam', 'selarrrow')仍然给我选定的行,即使它们还没有被检查。
是否有其他方法可以启用/禁用复选框并了解哪些复选框已被选中?

谢谢

最佳答案

我建议您禁用“禁用”属性中的某些复选框。要全面实现,您需要

  1. loadComplete 事件句柄内设置“禁用”
  2. 此外还可以防止在 beforeSelectRow 事件句柄内选择禁用的行
  3. 要在多选列标题中支持“全选”复选框,请实现 onSelectAll 事件句柄,以修复禁用行的选择。

对应的demo可以看here 。代码中最重要的部分在这里:

var grid = $("#list10"), i;
grid.jqGrid({
//...
loadComplete: function() {
// we make all even rows "protected", so that will be not selectable
var cbs = $("tr.jqgrow > td > input.cbox:even", grid[0]);
cbs.attr("disabled", "disabled");
},
beforeSelectRow: function(rowid, e) {
var cbsdis = $("tr#"+rowid+".jqgrow > td > input.cbox:disabled", grid[0]);
if (cbsdis.length === 0) {
return true; // allow select the row
} else {
return false; // not allow select the row
}
},
onSelectAll: function(aRowids,status) {
if (status) {
// uncheck "protected" rows
var cbs = $("tr.jqgrow > td > input.cbox:disabled", grid[0]);
cbs.removeAttr("checked");

//modify the selarrrow parameter
grid[0].p.selarrrow = grid.find("tr.jqgrow:has(td > input.cbox:checked)")
.map(function() { return this.id; }) // convert to set of ids
.get(); // convert to instance of Array
}
}
);

更新: Free jqGrid支持 hasMultiselectCheckBox 回调,可用于创建并非针对 jqGrid 的所有行的多选复选框。可以使用 rowatr 来另外禁用某些行。结果,人们将以更简单的方式获得上述功能。建议对带有本地数据的免费 jqGrid 使用 multiPageSelection: true 选项(datatype: "local"loadonce: true)。选项 multiPageSelection: true 将在分页时保存数组 selarrrow。它允许通过在selarrrow中填充相应的id来“预选择”一些行。请参阅 the answer更新部分和 the answerthe demo了解更多信息。

关于jquery - jqgrid:多选和禁用检查(有条件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com