Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kendo ui Kendo UI Treeview数据源未绑定到数据源中的所有项_Kendo Ui_Kendo Treeview - Fatal编程技术网

Kendo ui Kendo UI Treeview数据源未绑定到数据源中的所有项

Kendo ui Kendo UI Treeview数据源未绑定到数据源中的所有项,kendo-ui,kendo-treeview,Kendo Ui,Kendo Treeview,剑道UI是一个全新的用户界面,希望根据另一个用户界面框架进行评估。我想在树视图中填充一个js数组。我将数组传递给在选择器上创建kendotreeview的函数。在添加到HierarchycalDataSource之前,我需要转换数组。它在第一次运行时工作正常,但是当另一个对象添加到数组中,并且我再次调用该函数时,树继续只显示数组中的底部对象。代码如下: var len = data.ar.length, dAR = []; for(var i = 0; i < len; i++)

剑道UI是一个全新的用户界面,希望根据另一个用户界面框架进行评估。我想在树视图中填充一个js数组。我将数组传递给在选择器上创建kendotreeview的函数。在添加到HierarchycalDataSource之前,我需要转换数组。它在第一次运行时工作正常,但是当另一个对象添加到数组中,并且我再次调用该函数时,树继续只显示数组中的底部对象。代码如下:

var len = data.ar.length,
    dAR = [];

for(var i = 0; i < len; i++) { // Transform my passed array into one appropriate for the tree
    var v = data.ar[i],
        iLen = v.items.length,
        iAR = [],
        dMap = {
            text: v.type + ' (' + v.resultCount + ')',
            child: v.child,
            type: v.type,
            items: iAR
        };

    for(var ii = 0; ii < iLen; ii++) {
        var vv = v.items[ii], 
            iMap = {
                text: vv.type + ' (' + vv.qty + ')',
                child: vv.child,
                par: vv.parent,
                parentType: vv.parentType,
                type: vv.type
            };

        dMap.items.push(iMap);
    }
    dAR.push(dMap);
}

var treeData = new kendo.data.HierarchicalDataSource({
    data: dAR
});

var treeview = $(".searchResultsList").data("kendoTreeView"); 
if(treeview !== undefined) {
    treeview.destroy();
}

$(".searchResultsList").kendoTreeView({
    dataSource: treeData,
    select: function(e) {
        var itm = this.dataItem(e.node);
        selectionChange(itm);
    }
});
var len=data.ar.length,
达尔=[];
对于(var i=0;i

在向阵列添加其他对象之前,该树将显示并正常运行。如果我将静态数据添加到HierarchycalDataSource,它可以很好地处理数组中的多个对象。这让我相信问题来自于我转换传递的数组内容的方式。任何帮助都将不胜感激

上面的整个代码块是否在向数组中添加项时调用的函数中?您不需要
.dispose()
并重新创建树视图。您只需调用
treeview.setDataSource(treeData)但这可能不是问题的原因。正确。整个树是在函数中按需构建的。函数中还有其他私有方法(即调用的selectionChange方法)。我修复了这个问题,完全销毁了树,然后通过jQuery对DOM元素调用.remove()。我不知道“setDataSource”方法!那就容易多了!在之前使用的库中,我们可以继续调用函数,树实例将自动刷新。谢谢你的帮助。