gpt4 book ai didi

javascript - jqGrid - 只编辑可编辑列的某些行

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:10:13 24 4
gpt4 key购买 nike

是否可以在 jqGrid 中禁用编辑对于标记为可编辑的列中的某些单元格?

据我所知,唯一的选项是“所有单元格都是可编辑的”或“没有单元格是可编辑的”。有办法解决这个问题吗?

最佳答案

我建议您使用所谓的“内联编辑”进行行编辑。这种方法的最大优点,在于它非常直观和用户。您可以在演示页面上看到它是如何工作的 http://trirand.com/blog/jqgrid/jqgrid.html .在此演示中选择“行编辑”,然后在左侧树部分选择“使用事件”或“输入类型”。使用此方法,您可以在事件句柄 onSelectRowondblClickRow 内实现任何自定义验证是否应允许编辑所选行。如果允许编辑,则调用 jqGrid 的 editRow 方法。此方法为所有可编辑列创建输入控件,用户可以自然地修改行值。如果用户按“enter”键或按“esc”键取消,修改将被保存。

我个人更喜欢在 ondblClickRow 事件处理程序中调用 editRow 方法。因此用户可以像往常一样继续选择行,并可以使用双击进行行编辑。伪代码如下所示:

var lastSel = -1;
var isRowEditable = function (id) {
// implement your criteria here
return true;
};
var grid = jQuery('#list').jqGrid({
// ...
ondblClickRow: function(id, ri, ci) {
if (isRowEditable(id)) {
// edit the row and save it on press "enter" key
grid.jqGrid('editRow',id,true);
}
},
onSelectRow: function(id) {
if (id && id !== lastSel) {
// cancel editing of the previous selected row if it was in editing state.
// jqGrid hold intern savedRow array inside of jqGrid object,
// so it is safe to call restoreRow method with any id parameter
// if jqGrid not in editing state
grid.jqGrid('restoreRow',lastSel);
lastSel = id;
}
},
pager: '#pager'
}).jqGrid('navGrid','#pager',{edit:false});

关于javascript - jqGrid - 只编辑可编辑列的某些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863874/

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