Kendo UI Grid MVC dataSource.at(0)未定义,其中AutoBind = false,在dataSource.Read()之后

时间:2019-07-18 18:40:08

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

我有一个剑道网格,我不想在页面加载时填充它,所以我将autoBind设置为false。但是我也想使某些列在某些情况下不可编辑。我正在关注this answer的操作方法,简而言之是通过以下方式实现的:

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

但是,如果$grid.dataSource.at(0)为假,则autoBind是不确定的,我希望在dataSource.read()之前而不是之后。因此,我有了这个,但是$grid.dataSource.at(0)仍未定义,并且网格中有几行结果。

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

如果我将autoBind更改为true,则一切正常。

在不自动绑定时如何实现将列设置为不可编辑?

1 个答案:

答案 0 :(得分:1)

读取操作正在异步运行,但是您的代码按顺序工作。因此,发生的是读操作在尝试访问(尚未加载的数据)之后立即开始(!)。您可以告诉数据源,一旦加载完成该怎么办。有关使用read's promise功能的示例,请参见https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/methods/read