javascript - jQGrid,如何使列在添加对话框中可编辑但在(内联)编辑期间不可编辑

标签 javascript jquery jqgrid editing

我有一个带有一列的 jQGrid,我只想在添加新行时对其进行编辑。

我已经看到了当编辑和添加都发生在对话框中时如何执行此操作的示例,但是有没有办法通过内联编辑来执行此操作?

我试过在 beforeShowForm: 中使用 grid.setColProp(),但这不起作用(该列保持只读状态并且不存在于添加对话框中)。

基于对话框的列启用/禁用示例:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm

最佳答案

因为您使用了我以前的回答(thisthis)中的示例,所以我觉得我也应该回答您的问题。

old example所有可以在添加或编辑对话框中修改的字段都具有属性 editable:true。应仅在“添加”对话框中显示的字段将隐藏在 beforeShowForm 中事件句柄。同样,我们可以在调用 editRow 方法之前将某些字段临时切换为editable:false,并立即重置回editable:true通话后:

onSelectRow: function(id) {
    if (id && id !== lastSel) {
        grid.jqGrid('restoreRow',lastSel);
        var cm = grid.jqGrid('getColProp','Name');
        cm.editable = false;
        grid.jqGrid('editRow', id, true, null, null, 'clientArray');
        cm.editable = true;
        lastSel = id;
    }
}

直播可以看到here .

更新: Free jqGrid允许将 editable 定义为回调函数。参见 the wiki article .它允许使列在某些行中可编辑,而在其他行中保持不可编辑。

关于javascript - jQGrid,如何使列在添加对话框中可编辑但在(内联)编辑期间不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307147/

相关文章:

javascript - 按下按钮后 HTML 页面卡住

javascript - 您应该在构造函数中定义组件状态的所有属性吗?

javascript - JavaScript 中有窗口管理库吗?

javascript - 使用 AJAX 的数据表中的子行

jquery - 单击主页上的 Logo 会破坏移动网站上的导航菜单

java - 从 x-www-form-urlencoded 中的 jqGrid 接收编辑/添加数据,我需要 application/json

javascript - 调用webapi时无法使用JSON将数据绑定(bind)到JQGrid

javascript - 除了黑魔法之外,当通过 http 与 https 获取页面时,还有什么可能导致 js/css 文件包含在其包含的 html 文档中?

jQuery .hide() 和 .show() 之间奇怪的交互

javascript - 如何在jqGrid单元格编辑中只允许数字?