多维数据源适合剑道网格

时间:2018-10-19 06:21:41

标签: javascript kendo-ui kendo-grid kendo-asp.net-mvc

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

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

这是我创建数据的方式: 我为日期动态创建一列。     在此处输入代码     $ .each(groupedData,function(col,val){                     if(属性!='DateFormat'&&属性!='日期'){                         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;
            });

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

3 个答案:

答案 0 :(得分:0)

编辑:

Kendo-ui向您显示[object] [object],当您尝试将jsObject解析为字符串时,这种情况发生在例如调用

((value - 33) Mod 94) + 33

代替

JSON.stringify(data[i])            // data[i] = { actualData: "hi i am right", actualId: 0 }

尝试查找解析错误,您的网格将再次正常工作!

旧答案:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

感谢您的回答,我能够将网格与动态列配合起来。

function generateColumns(sampleDataItem) {
        var columnNames = Object.keys(sampleDataItem[0]);
        return columnNames.map(function (name) {
                return {
                    field: name,
                    width: 200,
                    title: name,
        }}