Jquery 禁用剑道网格中的编辑
我正在尝试根据条件将可编辑网格设置为不可编辑 我已经在jquery中进行了如下尝试Jquery 禁用剑道网格中的编辑,jquery,asp.net-mvc,razor,kendo-ui,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(),然后在网格中循环,但是单元格不是不可编辑的,它们仍然是可编辑的 有人能告诉我
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;
数据中
是kendoGrid而不是kendoGrid模型中
是var而不是var字段
而不是字段
var $grid = $("#gridName").data("kendoGrid");
$grid.dataSource.at(0).fields["cell"].editable = false;
您只需要将其更改为一行,因为模型由网格中的所有行共享
请参见在JSFIDLE中运行它,问题已得到解决
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;
}
var$grid=&(#gridName”).data(“kendoGrid”);
var len=&(“#gridName”).data(“kendoGrid tbody tr”).length();
对于(i=0;i如果使用“incell”编辑模式,网格有一个“edit”事件,可用于立即关闭单元格
$("#grid").kendoGrid({
...
edit: function(e) {
if ( ... ) {
this.closeCell();
}
}
...
});
一种更强大的方法是对kendoGrid进行子类化,并覆盖editCell和/或editRow方法。然后您可以做任何您想做的事情。有关对kendo小部件进行子类化的信息。
用于(i=0;i禁用单元格编辑:
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;
}
}
要删除命令按钮(如删除按钮),请执行以下操作:
var rows = $('#gridName tbody tr');
$.map(rows, function (row) {
//cell buttons index
row.cells[4].innerHTML = "";
});
要隐藏工具栏网格,请执行以下操作:
$("#gridName .k-grid-toolbar").hide();
正在尝试仅启用/禁用编辑整个表格或某些字段?修改了行,仍然存在问题。@OnaBai嘿,如果我只想更改特定行中特定列的可编辑值和validation.min,该怎么办?假设第1行中某些列的最小值为3,第2行中相同列的最小值为1或其他…@on如果我使用$grid.dataSource.at(idx),aBai似乎会.fields.MyField.validation.min=somedynamicinvalue;那么不管怎样,都会为整个列设置somedynamicinvalue,而不仅仅是一行…hmmmmm不确定这是否可行。对,字段指的是模型,即列的定义。因此,我们不能使特定行的单元格不可编辑,或者有什么方法可以做到这一点你最初的问题是“谁能告诉我我做错了什么?”我告诉过你。同样,你也有语法错误。你真的试过你的代码吗?你能把它放到JSFIDLE上并让它运行吗?如果你想知道如何将一个列转换为不可编辑,请在前面的答案中检查我的编辑。这是可行的,但是如果你有一个编辑器,比如下拉菜单,你可能会在打开它然后关闭它时注意到一个flash。相反,您可以使用beforeEdit
事件和e.preventDefault()
,这样单元格就不会首先打开。
$("#gridName .k-grid-toolbar").hide();