我之前向generate a kendo grid dynamically发布了有关此代码的问题。
我现在遇到的当前问题,即使我像这样硬编码列数:
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>
如何解决数据将在网格中显示的问题?
任何帮助将不胜感激,谢谢...
答案 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
,这是一个存储标题的数组。