2014-03-19 36 views
0

似乎在最新版本的Kendo Web中存在一個錯誤。最新的劍道網(2014.1.318)model.set方法不起作用

我在自定義彈出網格編輯器中使用下拉列表的select事件來設置模型中其他字段的值。對於選擇EVET的代碼如下所示:

function select(e) { 
    var data = this.dataItem(e.item.index()); 
    var win = this.element.closest("[data-role=window]"); 
    var uid = win.data("uid"); 
    var model = grid.data("kendoGrid").dataSource.getByUid(uid); 
    model.set('field', data.value); 
} 

我可以確認所選擇的下拉項目的DataItem的正確返回,因爲是被編輯的行的模式。

沒有生成錯誤,但模型沒有更新。相同的代碼適用於版本2013.3.1316。

我不知道是否有人從Telerik看這些論壇?

回答

1

據我所見,問題出在data.value。你有沒有檢查它是否包含所需的值?

我這樣做:

select : function (e) { 
     var data = this.dataItem(e.item.index()); 
     var win = this.element.closest("[data-role=window]"); 
     var uid = win.data("uid"); 
     var model = grid.data("kendoGrid").dataSource.getByUid(uid); 
     model.set('field', data); 
    } 

試圖重現你的代碼,並能正常工作。

請在此處檢查代碼:http://jsfiddle.net/OnaBai/XNcmt/33/其中我將您爲City列選擇的值複製到City2列中。

+0

嗨。這真的很奇怪。我已經編輯了你的[小提琴](http://jsfiddle.net/XNcmt/45/),以便它更符合我在做的事情,並且它完美地工作。在我的實現中,它根本無法工作:我已經將'data'對象輸出到控制檯,它是正確的。我已經嘗試在調用'model.set'後立即將'model'輸出到控制檯,並且該字段未更新。就像我說的 - 完全相同的代碼與2013年發佈的最新版本完美結合。 – Mat

+0

我剛剛對此進行了一些研究,並且已經查明瞭這個問題,但不知道爲什麼會發生這種情況。我正在使用'model.set'來更新幾個字段。他們中的大多數都正確更新,但有些不是。那些沒有更新的稱爲'elr','start_val'和'end_val'。後兩者具有自定義驗證,它檢查它們的值是否在一定範圍內。如果我刪除驗證一切都很好。我更新了[Fiddle](http://jsfiddle.net/XNcmt/49/)來演示這個問題。 – Mat