Kendo UI在运行时添加行(客户端)

时间:2013-08-22 09:06:40

标签: grid kendo-ui

我可以在运行时使用.js文件在Kendo Data Source中添加一行,但我没有从表单(UI)中看到,我按照以下步骤进行操作

var vgrid = $("#grdEntitys").data("kendoGrid");
var datasource = vgrid.dataSource;
var newRecord = { No: "8164",ModellNo: "147",ID: "Test01", Name: "TEST"}
datasource.insert(newRecord);

然后它抛出一个错误“TypeError:无法读取未定义的属性'AttributeValue'”, 如果我们查看控制台日志,我可以看到已插入的行数以及新插入的记录。但在UI中没有变化(UI网格)。

你可以请任何人让我知道,如何在客户端添加行?

提前致谢

2 个答案:

答案 0 :(得分:2)

对于插入,您必须指定索引(Insert):

var dataItem = dataSource.insert(0, { name: "John Doe" });

或者,您可以使用Add,而无需指定索引:

<script>
var dataSource= new kendo.data.DataSource({
  data: [
    { name: "Jane Doe", age: 30 }
  ]
});
dataSource.add({ name: "John Doe", age: 33 });

答案 1 :(得分:0)

您可以使用事件中的脚本在网格中添加项目。

var dataSource = $("#CustomerPackageChannelKendoGridAdd").data("kendoGrid").dataSource;  
           // Get value from another field  
     var _JV_ACCOUNT_ID = $('#JV_ACCOUNT_ID').val();  
     var _JV_ACCOUNT_NAME = $('#JV_ACCOUNT_NAME').val();  
     var _JV_ACCOUNT_CODE = $('#JV_ACCOUNT_CODE').val();  
     var _JV_NOTES = $('#JV_NOTES').val();  
     var _JV_DATE = $('#JV_DATE').val();  
     var type = $('#JV_Transaction_TYPE').val();  
    // You can set condition if required for you  
     if (CheckExistingData(gridDataAdd, _JV_ACCOUNT_ID) == false) {  
       currentId += 1;  
       dataSource.add(  
         {  
            id: currentId,  
            JV_ACCOUNT_ID: _JV_ACCOUNT_ID,  
            JV_ACCOUNT_NAME: _JV_ACCOUNT_NAME  
           , JV_ACCOUNT_CODE: _JV_ACCOUNT_CODE  
           , JV_NOTES: _JV_NOTES  
           , JV_DATE: _JV_DATE  
           , JV_DEBIT_AMOUNT: _JV_DEBIT_AMOUNT  
           , JV_CREDIT_AMOUNT: _JV_CREDIT_AMOUNT  
         });  
     }

您还可以see this

获取更多信息