2013-08-02 74 views
0

我有一個編輯按鈕和Kendo網格onSave事件,當我連續改變某些東西時會啓動。現在我想要更新行時訪問dataItem值,但由於某種原因,它始終爲空,我做錯了什麼?我在訪問下拉菜單中的值時沒有問題,但我也需要隱藏值。我如何從kendo網格與onSave事件獲得隱藏值

JS

function onSave(e) { 
     if (e.model.StatusIdD) {  
      e.model.StatusIdD = 0; 
      var currentlySelectedValue = $(e.container).find('#StatusIdD').data("kendoDropDownList").value(); 
      var dataItem = this.dataItem($(e.target).closest("tr")); 
      var bojaTeksta = dataItem.BojaTeksta; 
      console.log(bojaTeksta); 
      e.model.set('StatusIdD', currentlySelectedValue); 
      e.model.set('Status', $(e.container).find('#StatusIdD').data("kendoDropDownList").text()); 
      //e.model.set('BojaPozadine', currentlySelectedValue); 
      //e.model.set('BojaTeksta', currentlySelectedValue); 
     }  
    } 

網 - 簡化

... 
columns.Bound(p => p.BojaTeksta).Hidden(true); 
columns.Bound(p => p.BojaPozadine).Hidden(true); 
... 
.Events(e => e.Remove("onRemove").Save("onSave")) 

ANSWER

我設法與selectedItem屬性數據,而隨後的DataItem(當你點擊一個命令按鈕,自動選擇行)

var grid = $("#Grid" + '@guid').data("kendoGrid"); 
var selectedItem = grid.dataItem(grid.select()); 
var bojaTeksta = selectedItem.BojaTeksta; 
var bojaPozadine = selectedItem.BojaPozadine; 
console.log(bojaTeksta); 
console.log(bojaPozadine); 

回答

1

獲取隱藏值不應該有任何問題。

首先確保設置了BojaTeksta。通過檢查生成的HTML。

它應該是這個樣子:

<td role="gridcell" style="display:none">123</td> 

檢查,看看你是從你的DataItem讓其他值。不隱藏的值。

如果沒有嘗試使用,而不是在事件目標的currentTarget當前:

var dataItem = this.dataItem($(e.currentTarget).closest("tr")); 
+0

嗨,我仍然得到一個空值當我使用VAR的DataItem = this.dataItem($(e.currentTarget).closest ( 「TR」)); (在我的onSave函數我用var dataItem = this.dataItem($(e.target).closest(「tr」));)任何輸入? –

+0

我也嘗試編輯事件,但由於某種原因,它不會得到dataItems。只有當我成功使用dataItem的時候是使用自定義命令按鈕,但我不知道如何在自定義按鈕中調用網格編輯 –

+0

您可以創建一個http://jsfiddle.net/例子嗎?根據這裏的文檔:http://docs.kendoui.c​​om/api/web/grid#methods-dataItem你的代碼應該工作。 – unicorn2