如何动态更改剑道树列表的列收集集?



尝试通过查询动态更改列列表...

当我构造 TreeList 时,我调用列:

$("#treelist").kendoTreeList({
columns: AnalyseCenterSKUService.getKPIColumnList($scope)

如果我返回一个带有字段的简单数组,它就可以工作..

如果我调用一个$http.get(在我的getKPIColumnList(..(函数中(,它将一些列添加到现有的列数组中,则TreeList构造不正确。

任何建议将不胜感激! :)

编辑22-10-2019 09:00

树列表初始化

$("#treelist").kendoTreeList({
columns: AnalyseCenterSKUService.getKPIColumnList($scope), 
scrollable: true,
columnMenu : {
columns : true
},
height: "100%", 
dataBound: function (e) {
ExpandAll();
},
dataSource: {
schema: {
model: {
id: "id",
parentId: "parentId",
fields: {
id: { type: "number" },
parentId: { type: "number", nullable: true },
fields: {
id: { type: "number" },
parentId: { type: "number", nullable: false }
}
}
}
},
transport: {
read: {
url: "/api/AnalyseCenter/GetWorkOrderTree/0",
dataType: "json"
}
}
}

getKPIColumnList 返回一个静态数组 + 一些带有动态列的推送(来自数据库(

angular.module('AnalyseCenterDirectives')
.service ('AnalyseCenterSKUService', function ($http) {
var toReturn = [ {field: "Name", title: "Hiérachie SKU", width: "30%" }, ..., ..., .... ];

我尝试使用此函数推送数据库结果

return $http.get("/api/AnalyseCenter/GetWorkOrderHistorianAdditonalColumns?equipmentName=" + equipmentName)
.then(function (result) {
var data = result.data;
if (data && data !== 'undefined') {
var fromDB = data;

angular.forEach(fromDB, function (tag) {
var tagName = tag.replace(".","_");
toReturn.push({                                 
field: tagName, title: tag, width: '10%',
attributes: { style: "text-align:right;"}                                                         })
})

存储过程GetWorkOrderHistorianAdditonalColumns返回字符串列表(将来的列(

这是因为 ajax是异步的,这意味着您的树列表在请求完成之前正在初始化。对于 JavaScript 新手来说,这是一个经典的问题。我建议你花点时间阅读一下ajax,比如AJAX是如何工作的。

回到你的问题。您需要在成功回调中创建树列表(我无法为您提供更完整的解决方案,因为我不知道您在函数中做什么,或者您使用哪个框架来打开该 ajax 请求(与结果数据,这可能是您的列。然后它会像你用数组初始化它一样工作。

相关内容

  • 没有找到相关文章

最新更新