2013-08-22 74 views
1

我可以用js文件到剑道数据源在运行时添加行,但我还没有从形式(UI)看到添加行,我也跟着下面的步骤剑道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网格)。

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

在此先感谢

+0

你解决你的问题? – Vojtiik

回答

1

对于插入你必须指定指数(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 }); 
+0

我想从我的弹出窗口网格中的一些行到主页面网格。我尝试按如下方式选择一行:var grid = $(“#ListOfValueWindowGrid2”)。data(“kendoGrid”); var selectedItem =(grid.dataItem(grid.select()));现在我需要将此行绑定到主页上的该网格。我可以这样做,$(“#PunishmentGrid”)。data(“kendoGrid”)。dataSource.data(obj);但问题是当我从弹出网格中选择另一行时,它将替换上一行。我也尝试添加或插入方法。但现在运气好,你可以给我任何线索吗? –

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