我一直在使用XSLT來顯示我的xml頁面。我利用下列以獲得從XML文件中的數據的:JavaScript - 使用xml生成Kendo Ui Grid數據
<的xsl:值的- 選擇= 「ClinicalDocument /組件/ structuredBody /成分[3] /部分/文本/表/ TBODY」/ >
在此之後,我有以下的JavaScript來清理數據,並進行轉換:
-----------Get Content for Grids---------- //Split Content into array var purposeArray = document.getElementById('purposeOfVisit').innerHTML.split("\n"); var activeProblemArray = document.getElementById('activeProblems').innerHTML.split("\n"); //------------ Remove All Unwanted Values-----------\\*/ var newDataString =""; for(var k = 0; k < purposeArray.length; k++) { newDataString += purposeArray[k] + "__"; } newDataString = newDataString.replace(/ /g,""); newDataString = newDataString.replace(/__________/g,"__-__"); var newDataArray = newDataString.split("__"); //------------- Save Values in final Array -------------\\*/ var semiFinalArray = new Array(); for(var x=0; x < newDataArray.length; x++) { if(newDataArray[x].length != 0) { semiFinalArray.push(newDataArray[x]); } } var finalArray = new Array(); var counter = 0; //------------ Find Number of Columns in row ------------\\*/ var numberOfRows = document.getElementById('numberOfRows').innerHTML; var numberOfColumns = document.getElementById('numberOfColumns').innerHTML; var columnsPerRow = parseInt(numberOfColumns)/parseInt(numberOfRows); //------------------------------Testing ------------------------------// var dataNamePre = "dataValue"; var temporaryArray = new Array(); var dataName; //----------- Generate Grid Values -----------// for(var b=0 ; b < semiFinalArray.length ; b = b + columnsPerRow) { var problemComment = ""; counter = 0; var obj; for(var a=0 ; a < columnsPerRow ; a++) { dataName = dataNamePre + counter.toString() + ""; //-------Generate Grid Titles------// temporaryArray.push("Title " + (counter+1)); var key = "key"+a; obj = { values : semiFinalArray[b+a] }; var problemComment = ""; finalArray.push(obj); counter++; } } //---------------------Generate GridArray---------------------------// var gridArray = []; var gridArrayHead = new Array(); counter = 0; var objectValue = new Array(); for(var x = 0; x < finalArray.length; x++) { objectValue = { head:temporaryArray[x], values: finalArray[x].values } gridArray.push(objectValue); } var provFacilities = []; for(var x = 0; x < finalArray.length; x++) { provFacilities[x] = { head:temporaryArray[x], values: finalArray[x].values } } //alert(gridArray); $("#grid").kendoGrid( { columns: [{ title:gridArray.head, template:'#= values #' }], dataSource: { data:finalArray, pageSize:10 }, scrollable:false, pageable:true });
這可能是一個迂迴的方法,但我仍然對這種編碼方法不熟悉。 當前,所有數據都在一列中顯示,其中最後一個值在我的temporaryArray中作爲列的標題。
一切工作,直到我嘗試設置Kendo網格的數據源。在格列屬性工作時,我提出了以下變化:
標題:gridArray [0]。頭
這樣做時,將標題改爲第一數組中的值。
我想知道的是如何在Kendo網格中生成列根據標題?有沒有辦法循環所有的值,並從那裏創建對象,看到發送到網格的日期是數組中的對象?
我基本上想要的東西,使這項工作,沒有repitition:
VAR myGrid = $( 「#電網」)kendoGrid({列:[{ 標題:temporaryArray [0 ],
字段:finalArray [0] .values},{ 標題:temporaryArray [1],
字段:finalArray [1] .values},{ 標題:temporaryArray [2],
字段:finalArray [ 2] .values},{ title:te mporaryArray [3],
字段:finalArray [3] .values},{ 標題:temporaryArray [4],
字段:finalArray [4] .values}] )};
任何幫助表示感謝,謝謝!