2013-08-22 72 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