【问题标题】:jQGrid, how to make a column editable in the add dialog but not during (inline) editsjQGrid,如何在添加对话框中使列可编辑,但在(​​内联)编辑期间不能编辑
【发布时间】:2011-05-17 11:14:18
【问题描述】:

我有一个 jQGrid,其中有一列我只想在添加新行时可以编辑。

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

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

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

【问题讨论】:

    标签: javascript jquery jqgrid editing


    【解决方案1】:

    因为您使用了我旧答案(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。它允许在某些行中使列可编辑,而对其他行保持不可编辑。

    【讨论】:

    • 太棒了!您在 jQGrid 上是否有任何博客文章、出版物或其他堆栈答案?
    • @DotNET Ninja:目前我只在 stackoverflow 和 trirand 论坛上写答案。我希望下次有时间写一篇博客或文章或一本书来描述如何有效地使用 jqGrid。
    • @Oleg:如果我们想让一列在所有行中都不可编辑,这似乎可行。有没有办法使特定列可编辑某些行而不是其他行?我环顾四周,找不到任何接近我正在寻找的东西。提前谢谢你。
    • @RRK:属性editable当前值 将由editRow 使用。因此,如果您在每次调用 editRow 之前更改 common 属性 editable,就像我展示的那样,那么您只能制作不可编辑的选定行。
    • @Oleg:谢谢。它现在正在工作。我错过了在 editRow 调用后重置可编辑属性的部分。
    猜你喜欢
    • 2011-04-26
    • 2012-10-09
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2014-11-09
    相关资源
    最近更新 更多