我尝试在加载后向网格添加一行,但如果我在dataSource
change
事件的事件处理程序中添加行,则会以递归方式触发< / p>
$("#orderGrid").kendoGrid({
dataSource: {
transport: {
read: "api/order-products"
},
pageSize: 10,
change: function(e) {
var grid = $("#orderGrid").data('kendoGrid');
grid.dataSource.add( { name: "Product 1", orderId: "1" } );
}
},
columns:[{
field: "name",
title: "Product Name"
}]
});
我还尝试将add-row函数添加到网格本身的dataBound
事件中;结果相同。
正确的方法是什么?
答案 0 :(得分:0)
我通过在网格对象中添加自己的标志来规避这一点;但是这感觉很糟糕 - 任何更干净的建议都欢迎:S
dataBound : function(e) {
var grid = $("#orderGrid").data('kendoGrid');
if (!grid.productAdded) {
grid.productAdded = true;
grid.dataSource.add({
name : "Name",
orderId : "27"
});
}
}