kendo grid dataSource更改添加行递归

时间:2017-07-26 14:09:02

标签: javascript kendo-ui kendo-grid

我尝试在加载后向网格添加一行,但如果我在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事件中;结果相同。

正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

我通过在网格对象中添加自己的标志来规避这一点;但是这感觉很糟糕 - 任何更干净的建议都欢迎:S

        dataBound : function(e) { 
            var grid = $("#orderGrid").data('kendoGrid');
            if (!grid.productAdded) {
                grid.productAdded = true;
                grid.dataSource.add({
                    name : "Name",
                    orderId : "27"
                });
            }
        }