如何在页面加载时显示可编辑的 jqgrid 列

How to show jqgrid columns editable on page load

我正在处理 JQgrid,其中 2 列需要可编辑,我已经使用 colModel 中的以下选项实现了它。

{
  name: 'Action',
  index: 'Action',
  editable: true,
  edittype: "select",
  formatter: 'select',
  editoptions: {
    value: {
      1: 'Approve',
      2: 'Reject'
    }
  },
  editrules: {
    required: true,
    custom: true,
    custom_func: actionCheck
  }
},

及以下两个选项 jqgrid

cellEdit: true,
cellsubmit: 'clientArray',

但是有了这个,我必须单击该列才能对其进行编辑。

我还有一个名为 commentsedittype:"textarea" 的列。

我想要的是,当用户打开页面时,他们会在所有行的两列中看到下拉菜单和文本区域,当他们在输入数据后单击提交按钮时,我将所有这些都放在一个数组中,我将然后用于更新我的 SharePoint 列表。

这可能吗?如果可以,请告诉我怎么做。

这是我目前拥有的,

使用 celEdit,您无法为所欲为。您可以使用两种方法 editRow 和 saveRow。为此,请检查文档。

想法是在加载数据后调用editRow。这可以在 jqGrid 代码之后使用 setTimeout 函数来完成。使这两个字段可编辑并执行。

...
jqGrid({
...
});

setTimeout(function() {
    var grid = $("#jqGrid");
    var ids = grid.jqGrid('getDataIDs');

    for (var i = 0; i < ids.length; i++) {
        grid.jqGrid('editRow',ids[i]);
    }
}, 800);

之后您可以保存点击按钮的数据。该按钮应在 DOM.

中的某处定义
    function saveRows() {
        var grid = $("#jqGrid");
        var ids = grid.jqGrid('getDataIDs');

        for (var i = 0; i < ids.length; i++) {
            grid.jqGrid('saveRow', ids[i]);
        }
    }

请勾选相似的example here