Javascript - 给出错误的动态行数

时间:2013-04-09 07:34:25

标签: javascript grid kendo-ui calculated-columns

我之前向generate a kendo grid dynamically发布了有关此代码的问题。

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

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

我是否收到错误:

enter image description here

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++;
}

网格显示如下:

enter image description here

当我隐藏列变量时:

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

输出看起来应该是:

enter image description here

但是空值用于列数,因此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>

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

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

1 个答案:

答案 0 :(得分:0)

我发现我的问题出现在for 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 Caillerie,需要添加tableTitle,这是一个存储标题的数组。