Kendo ui 从剑道网格数据填充剑道树视图

Kendo ui 从剑道网格数据填充剑道树视图,kendo-ui,kendo-grid,kendo-treeview,Kendo Ui,Kendo Grid,Kendo Treeview,我在同一个页面上有TreeView和Grid,我需要从网格数据填充TreeView。所以流程是这样的: // this function is called when user clicks on the button function getData() { grid.dataSource.read(); grid.dataSource.page(1); grid.dataSource.fetch(function () { var data = th

我在同一个页面上有TreeView和Grid,我需要从网格数据填充TreeView。所以流程是这样的:

// this function is called when user clicks on the button
function getData() {
    grid.dataSource.read();
    grid.dataSource.page(1);

    grid.dataSource.fetch(function () {
        var data = this.data();
        ... // logic to massage the data to populate TreeView
        ...
    }
}
用户从下拉列表中选择某物并单击按钮->web服务调用->使用web服务中的数据填充网格->使用网格数据的一些信息填充树视图

填充TreeView的逻辑当前位于grid.dataSource.fetch()方法中,如下所示:

// this function is called when user clicks on the button
function getData() {
    grid.dataSource.read();
    grid.dataSource.page(1);

    grid.dataSource.fetch(function () {
        var data = this.data();
        ... // logic to massage the data to populate TreeView
        ...
    }
}
但是,如果用户从下拉列表中选择其他内容并再次单击按钮,则此.data()似乎包含旧数据(从第一次开始),因此,TreeView将填充旧数据


除了fetch()之外,我应该使用哪个事件/方法来放入逻辑?

我认为应该使用kendoGrid的dataBound事件。 .

以下是kendoGrid数据绑定事件处理程序的示例代码:

function Grid_DataBound(e) {
    console.log("Grid_DataBound", e);

    var grid = e.sender;
    var dataItems = grid.dataSource.view();

    console.log(dataItems);

    var treeData = new Array();

    for (var i = 0; i < dataItems.length; i++) {
        treeData.push({
            OrderId: dataItems[i].OrderID,
            ShipName: dataItems[i].ShipName 
        });
    }

    var dataSource = new kendo.data.HierarchicalDataSource({
        data: treeData,
        schema: {
            model: {
                id: "OrderId"
            }
        }
    });

    $("#treeview").data("kendoTreeView").setDataSource(dataSource);
}
功能网格_数据绑定(e){
控制台日志(“网格数据绑定”,e);
var grid=e.sender;
var dataItems=grid.dataSource.view();
console.log(数据项);
var treeData=新数组();
对于(var i=0;i
如果您需要完整的示例代码,请告诉我