禁用在kendo网格中编辑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁用在kendo网格中编辑相关的知识,希望对你有一定的参考价值。

我正在尝试根据条件使可编辑网格无法使用。

我在jquery中试过如下

var $grid = &("#gridName").data("kendogrid");
Var model = $grid.datasource.at(1);
if(model)
  model.field["cell"].editable = false;

但是这里的'模型'正在变得不确定。

还尝试了$ grid.data()然后循环遍历网格,但是单元格不可编辑,它们仍然可以编辑。

任何人都可以让我知道我怎样才能做到这一点。

答案

你有一些印刷错误......

试试这个:

var $grid = $("#gridName").data("kendoGrid");
var model = $grid.dataSource.at(1);
if (model)
    model.fields["cell"].editable = false;
  1. 第1行。在data中它是kendoGrid而不是kendogrid。
  2. 第2行。在model中,它是var而不是Var
  3. 第4行。这是fields而不是field

编辑:如果您想将"cell"列更改为不可编辑,只需执行以下操作:

var $grid = $("#gridName").data("kendoGrid");
$grid.dataSource.at(0).fields["cell"].editable = false;

您只需将其更改为一行,因为模型由网格中的所有行共享。

看看它在JSFiddle中运行http://jsfiddle.net/OnaBai/GuyPa/

另一答案

禁用单元格编辑:

 var len = $("#gridName").find("tbody tr").length;
    for(var i=0;i<=len ; i++)
    {
        var model = $("#gridName").data("kendoGrid").dataSource.at(i);
        if (model) {//field names
            model.fields["DueDateStr"].editable = false;
            model.fields["TotalAmount"].editable = false;
            model.fields["IsPercentage"].editable = false;
        }

    }

禁用复选框控件,它在模板中:

$.map($("#gridName").find("input:checkbox"),
        function (item) {
            $(item).attr('disabled', 'disabled');
        }
    );

删除删除按钮等命令按钮:

 var rows = $('#gridName tbody tr');
    $.map(rows, function (row) {
        //cell buttons index
        row.cells[4].innerhtml = "";

    });

隐藏工具栏网格:

$("#gridName .k-grid-toolbar").hide();
另一答案

for(i=0;i<=$("#grid").find("tbody tr").length ; i++)
{ 
  var model = $("#grid").data("kendoGrid").dataSource.at(i);
  if(model)
  {
      model.fields[$("#grid").data("kendoGrid").columns[i].field].editable = false;    
  }
}
另一答案

如果您正在使用“incell”编辑模式,则网格会有一个“编辑”事件,可用于立即关闭单元格。

$("#grid").kendoGrid({

  ...

  edit: function(e) {
      if ( ... ) {
          this.closeCell();
      }
  }

  ...

});

更强大的方法是将kendoGrid子类化并覆盖editCell和/或editRow方法。然后你可以做任何你想做的事。 Look here有关子类化kendo小部件的信息。

另一答案

问题已解决。

var $grid = &("#gridName").data("kendoGrid");
var len= &("#gridName").data("kendoGrid tbody tr").length();
for(i=0;i<=len ; i++)
{
var model = $grid.datasource.at(i);
if(model)
  model.fields["cell"].editable = false;
}

以上是关于禁用在kendo网格中编辑的主要内容,如果未能解决你的问题,请参考以下文章

Kendo Grid:禁用行编辑

剑道网格在插入期间启用编辑,在编辑期间禁用(仅适用于一列)

在 kendo ui 网格中以编程方式更改 serverSorting

Kendo ui - 在子添加/编辑时获取父网格项(网格层次结构)

防止kendo ui网格弹出编辑器在验证错误后关闭

禁用/删除 Kendo mvc 验证器