我正在尝试使用 Kendo Grid MVVM 将 RowTemplate 内的事件绑定(bind)到 viewModel 函数。
但是,调用 kendo.bind 后,控制台中会显示错误,并且事件不会被触发,但网格显示正确。这是错误:
Uncaught Error: The mouseover binding is not supported by the button element kendo.editor.js:890
我尝试将行模板内的元素类型更改为任何其他类型,但结果相同。
这是我的 html 代码:
<div id="content">
<div>
<div id="grid" data-role="grid" data-bind="source: ordersSource"
data-selectable="True" data-columns='["OrderID", "ShipName", "ShipCity"]' data-row-template="rowTemplate" />
</div>
</div>
<script id="rowTemplate" type="text/x-kendo-template">
<tr data-uid="#= uid #">
<td><button data-bind="mouseover: listener">#: OrderID #</button></td>
<td>#: ShipName #</td>
<td>#: ShipCity #</td>
</tr>
</script>
这是我的 viewModel 代码:
var ordersDatasource = new kendo.data.DataSource({
type: "odata",
transport: {
read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
},
schema: {
model: {
id: "OrderID",
fields: {
OrderID: { type: "number" },
ShipName: { type: "string" },
ShipCity: { type: "string" }
}
}
},
pageSize: 5,
});
var viewModel = kendo.observable({
ordersSource: ordersDatasource,
listener: function (e) {
alert("Event: " + e.type);
}
});
kendo.bind($('#content'), viewModel);
Here如果你想尝试的话,就是 jsFiddle。
当鼠标经过第一列按钮时,它应该触发该事件,但事实并非如此。
最佳答案
绑定(bind)事件的正确语法是:
<button data-bind="events: { mouseover: listener }">#: OrderID #</button
( updated demo )
关于javascript - Kendo Grid MVVM 与 rowtemplate 绑定(bind)到事件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22174711/