【问题标题】:How to disable inline and form editing for posted rows in jqgrid如何禁用 jqgrid 中已发布行的内联和表单编辑
【发布时间】:2012-07-29 08:34:17
【问题描述】:

我正在寻找一种方法来禁用 jqGrid 行的编辑,其中 isPosted 列的值为 true。

使用操作格式化程序或双击行中的表单和内联编辑。 需要禁用各种编辑。 我在 jqGrid loadcomplete 中尝试了下面的代码。

这不会禁用表单编辑。还双击发布的行显示保存和取消按钮(所有列都处于只读模式)。

如何为发布的行禁用所有类型的行编辑? jqGrid 由远程 jqson 数据填充。

  loadCompete: function () {
    var
      postedCol = getColumnIndexByName($grid, 'isPosted'),
      cRows = $grid[0].rows.length,
      iRow,
      row,
      className,
      isPosted,
      cm = $grid.jqGrid('getGridParam', 'colModel'),
      l,
      iActionsCol = getColumnIndexByName($grid, '_actions');

    l = cm.length;
    for (iRow = 0; iRow < cRows; iRow = iRow + 1) {
            row = $grid[0].rows[iRow];
            className = row.className;
            isPosted = false;
            if ($.inArray('jqgrow', className.split(' ')) > 0) {
              isPosted = $(row.cells[postedCol]).find(">div>input:checked").length > 0;
              if (isPosted) {
                    if ($.inArray('jqgrid-postedrow', className.split(' ')) === -1) {
                        // todo: how to disable row editing and inline edit actions buttons.
                        // why those two lines do not disable
                        row.className = className + ' jqgrid-postedrow not-editable-row';
                        $(row.cells[iActionsCol]).attr('editable', '0'); 
                        $(row.cells[iActionsCol]).find(">div>div.ui-inline-del").hide();
                        $(row.cells[iActionsCol]).find(">div>div.ui-inline-edit").hide();
                    }
                }
            }
        }


css file:

.jqgrid-postedrow
{
    background-color: #FFFFD0;
    background-image: none;
}

【问题讨论】:

    标签: javascript jqgrid


    【解决方案1】:

    @Andrus,您可以在 gridComplete 或 LoadComplete 上检查 isPosted 的值,如果是真的,只需使用 jquery 隐藏编辑按钮,您可以使用开发人员工具获取这些按钮的 id 对吗?

    我有一个类似的要求,在某些行中我必须显示编辑按钮,而在某些行中我必须根据 jqgrid 中的数据隐藏它们。

    所以我使用开发人员工具获得了这些按钮的 ID,并在 loadComlete 中检查了所有行的值并隐藏了按钮。我认为这也适合你。并谈论 onSelectRow 或 onDblClickRow 检查 isPosted 的值,如果其为 true,则应从函数中返回 false,否则进行正常编辑,类似这样

    jQuery("#grid_id").editRow(id, properties);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      相关资源
      最近更新 更多