2013-04-09 35 views
0

我以前發過一個關於這段代碼的問題到generate a kendo grid dynamicallyJavascript - 給出錯誤的行數動態數

目前的問題我現在,即使我硬編碼列像這樣的數字:

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

在你提供的小提琴中,沒有提供導致錯誤的'tableTitle'數組...我用一些'tableTitle'測試數組更新了小提琴,它似乎可以工作(除了造型,但我想這是因爲我沒有'kendo.custom.css'樣式表):http://jsfiddle.net/5sWue/4 /。 – 2013-04-09 08:32:22

+0

謝謝@SamuelCaillerie,儘管我發現這不是唯一的問題。由於我試圖簡化編碼所做的所有更改,因此我在下面貼出了一些細微的更改。 – 2013-04-09 08:38:47

回答

0

我發現我的問題是,在本作循環:

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需要被添加,這是存儲標題的陣列。