适合剑道网格的多维数据源

问题描述 投票:0回答:3

我有一个带有动态列的多维数据源,如下所示:

{
TaskName: "Sample",
Oct12018: {
    Assigned: 2,
    Completed: 0
},
Oct22018: {
   Assigned: 2,
   Completed: 2
},
... and so on.

这就是我创建数据的方式: 我动态创建日期列。

$.each(groupedData, function (col, val) {
                if (property != 'DateFormat' && property != 'Date') {
                    schedule[i] = {};
                    
                }
                for (var j = 0; j < val.length; j += 1) {
                    var currentItem = val[j]
                    var property = Object.keys(currentItem)[i];
                    schedule[i]["TaskDescription"] = currentItem.TaskDescription;
                    //schedule[i][currentItem.DateFormat] = currentItem["Assigned"];
                    for (var x = 0; x <= 2; x++) {
                        schedule[i][currentItem.DateFormat] = {};
                        schedule[i][currentItem.DateFormat]["Assigned"] = currentItem["Assigned"];
                        schedule[i][currentItem.DateFormat]["Completed"] = currentItem["Completed"];
                        //schedule[i]["Completed"] = currentItem["Completed"];
                    }
                }
                i += 1;
            });

现在我想知道如何将其放在我的剑道网格上。

javascript kendo-ui kendo-grid kendo-asp.net-mvc
3个回答
0
投票

为了让网格正确处理动态列,您必须在实例化网格之前定义它们。如果您事先没有数据,则可以通过销毁网格然后使用添加到 columns 属性的列来重建网格来解决此问题。


0
投票

编辑:

Kendo-ui 向您显示 [object][object],当您尝试将 jsObject 解析为字符串时,例如调用

时会发生这种情况
JSON.stringify(data[i])            // data[i] = { actualData: "hi i am right", actualId: 0 }

而不是

JSON.stringify(data[i].actualData) // data[i].actualData = "hi i am right"

尝试找到解析错误,您的网格应该可以再次工作!

旧答案:

当您像定义 kendo ui 网格条目一样创建元素时,您可以调用

var grid = $("#grid").data("kendoGrid");
grid.dataSource.add(yourElements);

0
投票

感谢您的回答,我能够将网格与动态列相匹配。

function generateColumns(sampleDataItem) {
        var columnNames = Object.keys(sampleDataItem[0]);
        return columnNames.map(function (name) {
                return {
                    field: name,
                    width: 200,
                    title: name,
        }}
© www.soinside.com 2019 - 2024. All rights reserved.