0

我之前发布了一个关于动态生成剑道网格的代码的问题。

我现在遇到的当前问题,即使我像这样硬编码列数:

var numberOfRows = 2;
var numberOfColumns = 12;
var columnsPerRow = numberOfColumns/numberOfRows;

是我得到错误:

在此处输入图像描述

First of all, what does this mean?

columnsPerRow 的使用方式如下:

var columnDefs = [];
counter = 0;

var arrayData = [];
for( var x = 0; x < result.length-1; x=x+Math.floor(columnsPerRow)+1 )
{
    var tempArr = new Array();

    for( var y = 0; y < columnsPerRow; y++ )
    {
        var num = x + y;
        tempArr.push(result[num]);
    }
    arrayData.push(tempArr);
}
var dataTitles = [];
for( var x = 0; x < titleArray.length; x++ )
{
    var head = "";
    head = titleArray[x];
    head = head.replace(/ /g,"");
    dataTitles.push(head);
}

var counter = 0;
var columnDefs = [];
for (var i = 0; i < columnsPerRow.length; i++) 
{
    if (counter == (columnsPerRow - 1)) 
    {
        counter = 0;
    }
    columnDefs.push({ field: dataTitles[counter], template: result[i].value });
    counter++;
}

网格显示如下:

在此处输入图像描述

当我像这样隐藏列变量时:

/*var numberOfRows = 2;
var numberOfColumns = 12;
var columnsPerRow = numberOfColumns/numberOfRows;*/

输出看起来应该是:

在此处输入图像描述

但是空值用于列数,因此 for 循环不会循环。

除了网格不显示数据。

我已将我所有的 javascript 和 html 放在这个jsfiddle中。虽然它没有在小提琴中工作。可能有一些未使用的代码。我正在忙着删除它。

我附上了这些文件:

<link href='assets/css/kendo.custom.css' rel='stylesheet' type='text/css' />
<link href='assets/css/kendo.common.min.css' rel='stylesheet'/>
<link href='assets/css/kendo.default.min.css' rel='stylesheet' type='text/css' />
<script src='assets/js/jquery.min.js'></script>
<script src='assets/js/kendo.all.min.js'></script>

以及如何解决数据将显示在网格中的问题?

任何帮助将不胜感激,谢谢...

4

1 回答 1

0

我发现我的问题出在这个 for 循环中:

for (var i = 0; i < columnsPerRow.length; i++) 
{
    if (counter == (columnsPerRow - 1)) 
    {
        counter = 0;
    }
    columnDefs.push({ field: dataTitles[counter], template: result[i].values });
    counter++;
}

问题如下:

i < columnsPerRow.length

应该

i < columnsPerRow

columnDefs.push({ field: dataTitles[counter], template: result[i].values

应该

columnDefs.push({ field: dataTitles[counter], template: result[i]

正如 上面发布的@Samuel CaillerietableTitle需要添加,这是一个存储标题的数组。

于 2013-04-09T08:36:03.090 回答