【问题标题】:Kendo UI Grid MVC dataSource.at(0) undefined with AutoBind = false and after dataSource.Read()Kendo UI Grid MVC dataSource.at(0) undefined with AutoBind = false and after dataSource.Read()
【发布时间】:2019-07-18 18:40:08
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    读取操作是异步运行的,但您的代码是按顺序运行的。所以发生的事情是读取操作开始(!)并且在您尝试访问(尚未加载的数据)之后立即开始。您可以告诉数据源加载完成后会发生什么。请参阅 https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/methods/read 了解使用 read 的 promise 功能的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多