禁用在kendo网格中编辑

时间:2013-01-18 16:12:32

标签: jquery asp.net-mvc razor kendo-ui

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

我在jquery中尝试了如下

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

但是这里'模型'未定义。

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

任何人都可以告诉我如何才能完成这项工作。

4 个答案:

答案 0 :(得分:14)

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

请改为尝试:

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
  4. 编辑:如果您想将"cell"列更改为不可编辑,只需执行以下操作:

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

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

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

答案 1 :(得分:1)



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;    
  }
}
&#13;
&#13;
&#13;

http://jsfiddle.net/parthiv89/qwtyLmhk/

我希望这种方法很有效......如果有作品,请不要忘记投票给我。

答案 2 :(得分:0)

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

$("#grid").kendoGrid({

  ...

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

  ...

});

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

答案 3 :(得分:-7)

问题已解决。

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;
}
相关问题