如何删除内联编辑按钮以便保存和取消按钮保留

How to remove inline edit button so that save and cancel buttons remain

在免费的 jqgrid 中,行的内联编辑是在 beforeSelectRow 事件中使用单击行开始的。

因此不需要操作列中的内联编辑按钮。 我试图通过在格式选项中设置 editbutton = false 来删除它:

  cm= [{
    "name":"_actions",
    "template":"actions",
    "formatoptions":{"editbutton":false,
    "delbutton":true,
    "delOptions":{"url":"Delete",
    "afterComplete":function (response, postdata, formid) { 
       $grid[0].focus(); 
       }
      }}}

在这种情况下,在内联编辑期间,保存和取消按钮也不会出现在操作列中。内联编辑时操作列为空。

如果编辑操作按钮被禁用,如何启用保存和取消操作按钮?

我想你的意思是保存按钮应该包含在 formatter: "action" 中,但要隐藏到行中开始编辑(通过 [=13= 的使用按钮],通过选择行或其他方式)。您可以在免费的 jqGrid 中通过使用 isDisplayButtons 回调(请参阅 )执行此操作。列的以下定义可以解决问题

{
    name: "_actions",
    template: "actions",
    formatoptions: {
        editbutton: false,
        isDisplayButtons: function (opts, rwd, act) {
            return {
                save: { display: true },
                cancel: { display: true }
            };
        }
    }
}

参见the demo

一般情况下,您可以使用

在所有行中显示可见的保存按钮
{
    name: "_actions",
    template: "actions",
    formatoptions: {
        editbutton: false,
        isDisplayButtons: function (opts, rwd, act) {
            return {
                save: { display: true, hidden: false },
                cancel: { display: true }
            };
        }
    }
}

(参见 the next demo),但在编辑保存行更改后保存按钮将被隐藏,因为 formatter: "actions" 将按钮的可见性与行的当前状态同步: