【问题标题】:How to add datagrid column name in Adobe Flex如何在 Adob​​e Flex 中添加数据网格列名称
【发布时间】:2011-04-17 14:41:23
【问题描述】:

我已将数据网格定义如下

<mx:DataGrid id="dg" width="100%" height="100%" >

在这一部分中,我试图从数据库中获取详细信息并为 DataGrid 设置 dataProvider,如下所示。

var arrayContent:ArrayCollection = new ArrayCollection();

                for(var i:int=0;i<assetClassDetails.length;i++)
                {
                    var assetClass_:AssetItemClassVO = new AssetItemClassVO();
                    var array:ArrayCollection = new ArrayCollection();
                    var embeddableLocale:EmbeddableAssetItemClassLocale = new EmbeddableAssetItemClassLocale();
                    var assetClassD_:AssetItemClassLocale = new AssetItemClassLocale(); 
                    assetClass_ = assetClassDetails.getItemAt(i) as AssetItemClassVO;
                    array = assetClass_.assetItemClassLocale;
                    if(assetClass_ != null && array != null && array.length >0)
                    {
                    assetClassD_ = array.getItemAt(0) as AssetItemClassLocale;

                    arrayContent.addItem(new Array(assetClass_.id,assetClassD_.name,assetClassD_.description,assetClassD_.locale,assetClass_.createdby,assetClass_.createdtime,assetClass_.lastmodifiedby,assetClass_.lastmodifiedtime));

                    }            
                }   


                    dg.dataProvider = arrayContent; 

但是在这样做之后,我得到的列名是 1,2,3,4,5 ...8。 但我想将列名设置为 ID,Name,Description,Locale,CreatedBy,CreatedTime,LastModifiedBy,LastModifiedTime。

我该怎么做?

请帮忙。

【问题讨论】:

  • 为什么这个标签是c#?看起来您需要将 arrayContent.addItem(new Array... 更改为 arrayContent.addItem(new Object(...))

标签: apache-flex datagrid


【解决方案1】:

不是 100% 确定您要做什么,但这里是 DataGrid 数据绑定的示例。希望对您有所帮助。

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

            [Bindable]
            private var employees:ArrayCollection;

            private function init():void
            {
                employees = new ArrayCollection();
                employees.addItem({name: "Oscar", phone: "907.123.4567", email: "oscar@isacat.net"});
                employees.addItem({name: "Nimrod", phone: "907.876.5342", email: "nimrod@isacat.net"});
            }
        ]]>
    </mx:Script>

    <mx:DataGrid id="dg" color="0x323232" width="100%" rowCount="3" dataProvider="{employees}">
        <mx:columns>
            <mx:DataGridColumn dataField="name" headerText="Name"/>
            <mx:DataGridColumn dataField="phone" headerText="Phone"/>
            <mx:DataGridColumn dataField="email" headerText="Email"/>
        </mx:columns>
    </mx:DataGrid>  
</mx:Application>

【讨论】:

  • 谢谢回声! .我做了一些小调整,最后它对我有用。
【解决方案2】:

我不确定arraycollection上的数据,也许你可以检查我的代码,我在Datagrid上创建动态表

private function addDataGridParamColumn(tmp:String):void
{
    var dgColumn:DataGridColumn = new DataGridColumn(tmp);
    var arr:Array = dg.columns; 
    dg.headerRenderer = new ClassFactory(Label);

    switch(tmp)
    {
      case "Name":
        dgColumn.dataField = 'Name';
        dgColumn.width = 150;
        dgColumn.itemRenderer = new ClassFactory(Label);
      break;
    }

    arr.push(dgColumn);
    dg.columns = arr;
}

您可以调用函数addDataGridParamColumn(这是名称标题)并为循环添加案例

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 2011-01-11
    • 2010-10-19
    • 2017-06-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2011-11-23
    • 2022-08-08
    相关资源
    最近更新 更多