Kendo Grid MVVM与rowtemplate绑定到事件错误

时间:2014-03-04 14:29:36

标签: javascript jquery mvvm kendo-ui kendo-grid

我正在尝试使用Kendo Grid MVVM将RowTemplate中的事件绑定到viewModel函数。

但是,在调用kendo.bind后,然后在控制台中显示错误,并且事件不会被触发,但网格显示正确。这是错误:

  

未捕获错误:按钮元素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。

第一列按钮应该在将鼠标移到它上面时触发事件,但事实并非如此。

1 个答案:

答案 0 :(得分:2)

绑定事件的正确语法是:

<button data-bind="events: { mouseover: listener }">#: OrderID #</button

updated demo