Apache flex 动作脚本:如何以编程方式编写DataGrid?
我有这段代码,但我正在尝试将其转换为actionscript,所以我以编程方式呈现它,但失败了。我该如何将此写在AS上Apache flex 动作脚本:如何以编程方式编写DataGrid?,apache-flex,actionscript-3,datagrid,Apache Flex,Actionscript 3,Datagrid,我有这段代码,但我正在尝试将其转换为actionscript,所以我以编程方式呈现它,但失败了。我该如何将此写在AS上 <mx:DataGrid allowMultipleSelection="true" id="dg_disk" dataProvider="{people}" height="100%" width="100%" selectedIndex="0" x="50" y="50"> <mx:columns> <
<mx:DataGrid allowMultipleSelection="true" id="dg_disk" dataProvider="{people}" height="100%" width="100%" selectedIndex="0" x="50" y="50">
<mx:columns>
<mx:DataGridColumn dataField="name" id="empname" headerText="EmpName"/>
<mx:DataGridColumn dataField="title" id="title" headerText="Title"/>
<mx:DataGridColumn dataField="description" id="desc" headerText="Description"/>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
比如:
var empname:DataGridColumn = new DataGridColumn();
empname.dataField = "name";
empname.headerText="EmpName";
var title:DataGridColumn = new DataGridColumn();
…
var desc:DataGridColumn = new DataGridColumn();
…
var dg_disk:DataGrid = new DataGrid();
dg_disk.allowMultipleSelection = true;
dg_disk.percentWidth = 100;
dg_disk.percentHeight = 100;
dg_disk.x = 50;
dg_disk.y = 50;
dg_disk.columns = [empname, title, desc];
dg_disk.dataProvider = people;
dg_disk.selectedIndex = 0;
someContainer.addElement(dg_disk);
这将实现以下目的:
private function createDataGrid():void{
var dg:DataGrid = new DataGrid(); // create your grid
dg.id="dg_disk"
dg.percentHeight = 100;
dg.percentWidth=100;
dg.x = 50;
dg.y=50;
dg.selectedIndex = 0; //set its properties
dg.columns = createDgColumns(); // Add columns to your grid
addChild(dg); // Add the grid to the display list
}
private function createDgColumns():Array{
var columns:Array = [];
var empColumn:DataGridColumn = new DataGridColumn();
empColumn.dataField="name";
empColumn.headerText="EmpName";
var titleColumn:DataGridColumn = new DataGridColumn();
titleColumn.dataField="title";
titleColumn.headerText="Title";
var descColumn:DataGridColumn = new DataGridColumn();
descColumn.dataField="description";
descColumn.headerText="Description";
columns.push(empColumn);
columns.push(titleColumn);
columns.push(descColumn);
return columns
}
这是我写的程序的一部分。mSessionLogDG是数据网格。在本例中,我们将动态列添加到现有列中
private function createColumns() : void {
var _columnArray : Array = mSessionLogDG.columns;
var _initialOffset : uint = _columnArray.length;
// TODO
if ( _initialOffset > CreateCommentNamesCommand.MAX_NO_COMMENTS ) return;
this.mOffset = _initialOffset;
var _headerLabel : String = '';
for ( var i : uint = 0; i < CreateCommentNamesCommand.MAX_NO_COMMENTS; i++ )
{
var _dataColumn : DataGridColumn = new DataGridColumn();
_dataColumn.headerText = this.createCommentNamesCommand.labelArray[i];
_dataColumn.setStyle( "paddingLeft", "3" );
_dataColumn.setStyle( "textAlign", "left" );
_dataColumn.setStyle( "customID", i );
_dataColumn.width = 160;
_dataColumn.labelFunction = labelFunc;
_dataColumn.sortCompareFunction = SessionDescriptionXmlVo.mCommentCompareFunctionArray[i];
_dataColumn.itemRenderer = new ClassFactory( SessionCommentItemRenderer );
_dataColumn.visible = false;
_dataColumn.minWidth = 160;
_columnArray.push( _dataColumn );
mColumnArray[i] = _dataColumn;
}
mSessionLogDG.columns = _columnArray;
}
哇!谢谢这个。。。它甚至将列添加到数组中。我需要这个
var dg_disk : DataGrid = new DataGrid();
dg_disk.allowMultipleSelection = true;
BindingUtils.bindProperty(this, "people", dg_disk, "dataProvider");
dg_disk.percentHeight = 100;
dg_disk.percentWidth = 100;
dg_disk.selectedIndex = 0;
dg_disk.x = 50;
dg_disk.y = 50;
var empname : DataGridColumn = new DataGridColumn();
empname.dataField = "name";
empname.headerText = "EmpName";
var title : DataGridColumn = new DataGridColumn();
title.dataField = "title";
title.headerText = "Title";
var desc : DataGridColumn = new DataGridColumn();
desc.dataField = "description";
desc.headerText = "Description";
dg_disk.columns = [empname, title, desc];
addChild(dg_disk);
private function createColumns() : void {
var _columnArray : Array = mSessionLogDG.columns;
var _initialOffset : uint = _columnArray.length;
// TODO
if ( _initialOffset > CreateCommentNamesCommand.MAX_NO_COMMENTS ) return;
this.mOffset = _initialOffset;
var _headerLabel : String = '';
for ( var i : uint = 0; i < CreateCommentNamesCommand.MAX_NO_COMMENTS; i++ )
{
var _dataColumn : DataGridColumn = new DataGridColumn();
_dataColumn.headerText = this.createCommentNamesCommand.labelArray[i];
_dataColumn.setStyle( "paddingLeft", "3" );
_dataColumn.setStyle( "textAlign", "left" );
_dataColumn.setStyle( "customID", i );
_dataColumn.width = 160;
_dataColumn.labelFunction = labelFunc;
_dataColumn.sortCompareFunction = SessionDescriptionXmlVo.mCommentCompareFunctionArray[i];
_dataColumn.itemRenderer = new ClassFactory( SessionCommentItemRenderer );
_dataColumn.visible = false;
_dataColumn.minWidth = 160;
_columnArray.push( _dataColumn );
mColumnArray[i] = _dataColumn;
}
mSessionLogDG.columns = _columnArray;
}