2012-12-16 33 views
0

當dataSource的觀察者模式我分配網格中的數據源在配置時間:劍道UI:臭蟲以分組

parsedData = $.parseJSON(data); 
var dataSource = new kendo.data.DataSource({ 
     data: parsedData 
    }); 



$("#grid").kendoGrid({ 
     dataSource: dataSource, 
     etc etc 
     . 
     . 
     . 

然後我綁定到改變事件後配置/初始化:

var grid = $('#grid').data('kendoGrid'); 
    grid.dataSource.bind("change", function (e) { 
     dataChanged(); 
    }); 

function dataChanged() { 
    var grid = $("#grid").data("kendoGrid"); 
    grid.refresh(); 
} 

然後我刪除所有項目的數據源的數據陣列中:

while (grid.dataSource.data().length > 0) { 
    grid.dataSource.data().pop(); 
} 

在各行網格消失,如預期。但隨後,在空網格中,我將列標題拖到組面板中,網格重新填充自身。

我試圖找到一種方法來每60秒刷新一次網格數據,所以知道如何清除數據並用不同的數據替換它,而不會在沒有調整的地方留下殘餘數據到觀察對象的觀察數組。

或者我可能做錯了什麼或不完整 - 很可能,因爲我剛剛開始使用Kendo UI。

回答

0

正如我在您的other問題中所說的,您需要使用數據源的data方法。

+0

儘管對於60秒的刷新,我將使用dataSource的data()方法替換整個數據數組,在其他情況下,我需要從數據數組中刪除單個行。爲什麼通過將列標題拖動到分組面板,可以將這些刪除的行「重新創建」?是否存在由分組算法引用的數據集的退化副本,就好像觀察者沒有通知行已從數據數組中移除一樣? – Tim

+0

不確定你的意思。嘗試在jsfiddle.net或jsbin.com中創建演示。 –