2013-06-04 128 views
1

我需要在網格行和細節視圖上綁定一些事件。我正在使用可觀察的視圖模型,並註冊了一些事件,並試圖使用行模板和詳細信息模板將它們綁定到DOM。到目前爲止沒有進展。綁定Kendo網格事件

$("#grid").kendoGrid({ 
    sortable:true, 
    rowTemplate:'<tr class="k-master-row"> 
     <td class="k-hierarchy-cell"><a class="k-icon k-plus" href=""></a></td> 
     <td><a data-bind:"click:highlight">click in row ${id}</a></td><td>${bool}</td> 
    </tr>', 
    detailTemplate:'<a data-bind:"click:highlight">click In details ${id}</a>', 
    columns: [{field:'id',sortable:false}, {field:'bool'}], 
    dataBound: function(e) { 
     var grid=$("#grid").data('kendoGrid'); 
     grid.expandRow("tr.k-master-row"); 
    } 
}); 


var model=({ 
    highlight:function(){ 
     console.log(this.id); 
    }, 
    items:[{id: 1123, bool: true}, {id: 223, bool: false}] 
}); 
kendo.bind($("#grid"),kendo.observable(model)); 

這是jsFiddle http://jsfiddle.net/amGmr/9/。使用MVVM有沒有可能使用網格綁定事件?

+0

你弄清楚該怎麼辦呢?你可以請張貼答案嗎? – Lijo

回答

4

您應指定您希望通過數據綁定屬性綁定到事件和事件的結合:

<div data-role="grid" 
    data-bind="source: dataSource, events:{dataBound: dataBound, detailInit: detailInit}" 
></div> 

<script> 
var viewModel = kendo.observable({ 
    dataBound: function(e) { 
     var grid = e.sender; // `this` is the viewModel instance 
    }, 
    detailInit: function(e) { 
     var grid = e.sender; // `this` is the viewModel instance 
    }, 
    dataSource: [ 
     { name: "John Doe" }, 
     { name: "Jane Doe" } 
    ] 
}); 
</script> 
+0

這不適用於我使用kendo v2015.2.805我也試過在網格創建之前的選項上定義dataBound處理程序的非mvvm方法。 – War

+0

鑑於解決方案無法解決點擊:突出顯示事件問題。 – Ashish

相關問題