差异 btw Kendo 网格 _event 数据绑定和选项数据绑定

Discrepancy btw Kendo grid _event databound and option databound

对于Kendo网格,我们可以在初始化后使用bind订阅事件。

想象一下以下代码:(如果您想在 jsBin 中尝试,我已经为您提供了)

<div id="grid"></div>
<script>
  function foo(e) {
    console.log("foo");
  }
  function doo(e) {
    console.log("doo");
  }
  $(document).ready(function() {
    var grid = $("#grid").kendoGrid({
      columns: [
        { field: "name" },
        { field: "age" }
      ],
      dataSource: [
        { name: "Jane Doe", age: 30 },
        { name: "John Doe", age: 33 }
      ],
      dataBound: foo
  });
  $("#grid").data("kendoGrid").bind("dataBound", doo);
  debugger;
})
</script>

在调试器中,我在浏览器的控制台中观察到以下内容:

我看到绑定的doo只存在于_event数组中。这带来的麻烦是如果我需要通过以下方式重用这个网格配置:

$("newgrid").kendoGrid($("oldgrid").data("kendoGrid").options);

我会失去绑定事件。这是一个错误还是我以错误的方式解释它。谢谢。

grid.options仅在网格初始化期间使用,初始化后绑定事件不是选项的一部分。

尽管您可以在初始化后更新选项中的网格 dataBound 事件:

grid.setOptions({
    function(e){ foo(e); doo(e); }
})