Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在mxml和/或actionsctpt中向Adobe flex mx:DataGrid添加列?_Actionscript 3_Apache Flex_Datagrid_Mxml - Fatal编程技术网

Actionscript 3 如何在mxml和/或actionsctpt中向Adobe flex mx:DataGrid添加列?

Actionscript 3 如何在mxml和/或actionsctpt中向Adobe flex mx:DataGrid添加列?,actionscript-3,apache-flex,datagrid,mxml,Actionscript 3,Apache Flex,Datagrid,Mxml,我有简单的mxml代码 <mx:DataGrid id="DGG" editable="true"> <mx:dataProvider> <mx:Object scheduledDate="4/1/2006"/> </mx:dataProvider> </mx:DataGrid> <mx:Button id="SetBut" label="Set Ar

我有简单的mxml代码

<mx:DataGrid id="DGG"
             editable="true">
    <mx:dataProvider>
        <mx:Object scheduledDate="4/1/2006"/>
    </mx:dataProvider>
</mx:DataGrid>
<mx:Button id="SetBut"
           label="Set Array as Data Provider"
           click="SetDP(); AddBut.visible = true;"
           x="100.5"
           y="164"
           width="211"/>
<mx:Button id="AddBut"
           label="Add a column!"
           click="AddCol();"
           x="100.5"
           y="194"
           width="211"
           visible="false"/>
<mx:Script>
    <![CDATA[
        import mx.controls.dataGridClasses.DataGridColumn;
        import mx.collections.ArrayCollection;

        [Bindable]
        public var MyAC:ArrayCollection=new ArrayCollection([{scheduledDate: "4/1/2006", homeTeam: "Chester Bucks"}]);

        public function SetDP():void
        {
            DGG.dataProvider=MyAC
        }

        public function AddCol():void
        {
            MyAC.addItem({scheduledDate: "4/5/2007", homeTeam: "Long Valley Hitters", Umpire: "Amanda Hugenkis"});
            DGG.columns.push(new DataGridColumn("Umpire"));
        }
    ]]>
</mx:Script>

我想将行添加到我的表datagrid中,怎么做呢

如何在mxml和/或actionsctpt中向Adobe flex mx:DataGrid添加列


(您可以将此代码放入Flash或AIR应用程序中-它将编译时不会出错,但不会添加任何列=()

根据我收集的信息,您正在尝试将一些列动态添加到数据网格中:

dataGrid.columns.push(new DataGridColumn("dataField"));

添加行的最佳方法是使用可绑定的数据提供程序,我更喜欢ArrayCollection类

[Bindable] public var MyAC:ArrayCollection = new ArrayCollection([
  {scheduledDate:"4/1/2006", homeTeam:"Chester Bucks",awayTeam:"Long Valley Hitters", field:"Dawn Field", umpire:"Phil McKraken"}
]);
然后在datagrid中,不要通过MXML定义DP,而是这样添加:

<mx:DataGrid id="dataGrid" editable="true" dataprovider="{MyAC}"....>
由于它是绑定的,它将自动显示在dataGrid中

假设您在MXML中定义了您的列,如示例中所示,您可以这样添加裁判员列:

dataGrid.columns.push(new DataGridColumn("Umpire"));
由于该专栏已经发布,所以添加内容要归功于小丑宝贝

2010年2月1日编辑:完整代码示例

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        [Bindable] public var MyAC:ArrayCollection = new ArrayCollection([
          {scheduledDate:"4/1/2006", homeTeam:"Chester Bucks",awayTeam:"Long Valley Hitters", field:"Dawn Field", umpire:"Phil McKraken"}
        ]);

        public function addRow():void{
            MyAC.addItem({scheduledDate:"4/5/2006", homeTeam:"Long Valley Hitters",awayTeam:"Chester Bucks", field:"Sunset Field", Umpire:"Amanda Hugenkis"})
        }

        public function addCol():void{
            var dgc:DataGridColumn = new DataGridColumn("Umpire");
                var cols:Array = dataGrid.columns;
                cols.push(dgc);
                dataGrid.columns = cols;
        }
    ]]>
</mx:Script>

<mx:DataGrid id="dataGrid" editable="true" dataProvider="{MyAC}">
    <mx:columns>
        <mx:DataGridColumn dataField="scheduledDate" />
        <mx:DataGridColumn dataField="homeTeam" />
        <mx:DataGridColumn dataField="awayTeam" />
        <mx:DataGridColumn dataField="field" />
    </mx:columns>
</mx:DataGrid>
    <mx:Button x="10" y="150" label="Add Row" click="addRow();"/>
    <mx:Button x="202" y="150" label="Add Col" click="addCol();"/>

</mx:Application>

休闲示例将10列添加到datagrid“myGrid”

私有变量列:数组;

对于(var i:int=0;iI),我们添加了一个巨大的示例,说明了我们的所有观点,并致力于添加多行和多列。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        [Bindable] public var MyAC:ArrayCollection = new ArrayCollection([
          {scheduledDate:"4/1/2006", homeTeam:"Chester Bucks",awayTeam:"Long Valley Hitters", field:"Dawn Field", umpire:"Phil McKraken"}
        ]);

        public function addRow():void{
            MyAC.addItem({scheduledDate:"4/5/2006", homeTeam:"Long Valley Hitters",awayTeam:"Chester Bucks", field:"Sunset Field", Umpire:"Amanda Hugenkis"})
        }

        public function addCol():void{
            var dgc:DataGridColumn = new DataGridColumn("Umpire");
                var cols:Array = dataGrid.columns;
                cols.push(dgc);
                dataGrid.columns = cols;
        }
    ]]>
</mx:Script>

<mx:DataGrid id="dataGrid" editable="true" dataProvider="{MyAC}">
    <mx:columns>
        <mx:DataGridColumn dataField="scheduledDate" />
        <mx:DataGridColumn dataField="homeTeam" />
        <mx:DataGridColumn dataField="awayTeam" />
        <mx:DataGridColumn dataField="field" />
    </mx:columns>
</mx:DataGrid>
    <mx:Button x="10" y="150" label="Add Row" click="addRow();"/>
    <mx:Button x="202" y="150" label="Add Col" click="addCol();"/>

</mx:Application>
private var columns:Array;

        for (var i:int=0; i<10;i++){
          var dgc:DataGridColumn = new DataGridColumn("column name");
          dgc.headerText="column header";

          columns.push(dgc);
        }

        myGrid.columns=columns;