0
에서 데이터 그리드를 작성 : 나는 아홉 열이이 경우동적으로 내가 탭은 다음과 같습니다 엑셀에서 내 보낸 .txt 파일로 구분 한 수입 .txt 파일
Sector Section Family Code Brand Image Description Quantity Price
Sector 1 Section 1 Family 1 10000 Fiat 10000 Description 10000 8 25,00
Sector 1 Section 1 Family 1 10001 Kawasaky 10001 Description 10001 10 45,00
Sector 1 Section 1 Family 1 10002 Ford 10002 Description 10002 15 10,00
Sector 1 Section 1 Family 2 10003 Fiat 10003 Description 10003 100 8,00
하지만, 방법은 임의의 숫자와 함께 작동합니다 열의 나는이 값들로부터 dinamically dataGrid를 만들고 싶습니다; 이것은 내 첫 번째 시도이다
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import flash.net.URLLoader;
import flash.net.URLRequest;
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.events.FlexEvent;
private var loader:URLLoader = new URLLoader();
private var request:URLRequest = new URLRequest("txtData/products.txt");
protected function creationCompleteHandler(event:FlexEvent):void{
loader.addEventListener(Event.COMPLETE, loader_complete);
loader.load(request);
}
protected function loader_complete(evt:Event):void {
//create array of lines from loaded .txt file
var lines:Array = evt.target.data.split(/\n/);
var dg:DataGrid = new DataGrid();
var columns:Array = [];
var dataProvider:ArrayCollection = new ArrayCollection();
for (var i:Number = 0; i<lines.length; i++) {
var line:String = lines[i];
//create array of column values from each line
var lineArray:Array = line.split(/\t/);
for(var j:Number = 0; j<lineArray.length; j++){
var prop:String = lineArray[j];
if(i==0){
//if first line of array, create column and assign value of prop to dataField
var c:DataGridColumn = new DataGridColumn(prop);
c.dataField = prop;
columns.push(c);
}
else{
//create new object and add it to dataProvider
var dataObject:Object = {Sector: lineArray[0], Section: lineArray[1], Family: lineArray[2], Code: lineArray[3], Brand: lineArray[4], Image: lineArray[5], Description: lineArray[6], Quantity: lineArray[7], Price: lineArray[8] };
dataProvider.addItem(dataObject);
}
}
}
//assign columns to dataGrid
dg.columns = columns;
//assign dataProvider to dataGrid
dg.dataProvider = dataProvider;
//add dataGrid to stage
this.addElement(dg);
}
]]>
</fx:Script>
</s:Application>
, 대신 나는 (아래 라인을 참조) 데이터 공급자의 항목에 대해 그렇게 할 수 없습니다 나는 dinamically 열과 dataFields를 만들 수 있었다 :
var dataObject:Object = {Sector: lineArray[0], Section: lineArray[1], Family: lineArray[2], Code: lineArray[3], Brand: lineArray[4], Image: lineArray[5], Description: lineArray[6], Quantity: lineArray[7], Price: lineArray[8] };
어떻게이 값을 dinamically (열 번호 및 데이터 필드 이름을 모른 채) 만들 수 있습니까?
미리 감사드립니다.