【发布时间】:2014-03-20 00:05:45
【问题描述】:
我想在 AdvancedDataGrid 中显示对象的一些属性。我怎样才能做到这一点?我想声明 DataGridColumn 并将其绑定到对象的相应属性。我有一个 ArrayCollection,其中包含许多 resolutionVO 类型的对象。
如果我不声明列并将该 arrayCollection 提供给 DataGrid 的 dataProvider,那么它会显示所有列,但我不想要所有列。
当我声明列并将 dataField 绑定到该对象的相应属性时,DataGrid 将显示空数据。请帮助我如何绑定它?
下面是我的数据网格:
<mx:AdvancedDataGrid id="resolutionDG" x="10" y="85" width="1153" height="300"
dataProvider="{filteredResolutionReport}" columnWidth="600" color="black">
<mx:columns >
<mx:AdvancedDataGridColumn width="200" headerText="Incident ID"
dataField="{((reportVO.resolutionReport as ArrayCollection).getItemAt(0) as ResolutionVO).incidentId}" editable="false" />
<mx:AdvancedDataGridColumn width="200" headerText="Priority"
dataField="{((reportVO.resolutionReport as ArrayCollection).getItemAt(0) as ResolutionVO).priority}" editable="true" />
<mx:AdvancedDataGridColumn width="200" headerText="SLM Status"
dataField="{((reportVO.resolutionReport as ArrayCollection).getItemAt(0) as ResolutionVO).SLMstatus}" />
<mx:AdvancedDataGridColumn width="200" headerText="Submit Date"
dataField="{((reportVO.resolutionReport as ArrayCollection).getItemAt(0) as ResolutionVO).submitDate}" />
<mx:AdvancedDataGridColumn width="200" headerText="Incident Resolved Date"
dataField="{((reportVO.resolutionReport as ArrayCollection).getItemAt(0) as ResolutionVO).incidentResolvedDate}" />
</mx:columns>
</mx:AdvancedDataGrid>
而actionScript部分是:
[Bindable]
public var reportVO:ReportVO;
[Bindable]
public var resolutionReport:ArrayCollection;
[Bindable]
public var resolutionVO:ResolutionVO;
[Bindable]
public var filteredResolutionReport:ArrayCollection;
public function resultHandler(event:ResultEvent):void
{
resolutionReport=reportVO.resolutionReport;//
filteredResolutionReport=reportVO.resolutionReport;
}
类是:
1)ReportVO.as
[Bindable]
[RemoteClass(alias="com.adobe.sla.valueObject.ReportVO")]
public class ReportVO
{
private var _resolutionReport:ArrayCollection;
private var _responseReport:ArrayCollection;
public function ReportVO()
{
}
public function get responseReport():ArrayCollection
{
return _responseReport;
}
public function set responseReport(value:ArrayCollection):void
{
_responseReport = value;
}
public function get resolutionReport():ArrayCollection
{
return _resolutionReport;
}
public function set resolutionReport(value:ArrayCollection):void
{
_resolutionReport = value;
}
}
2)分辨率VO.as
[Bindable]
[RemoteClass(alias="com.adobe.sla.valueObject.ResolutionVO")]
public class ResolutionVO
{
private var _assignedGroup:String;
private var _incidentId:String;
private var _priority:String;
private var _SLMstatus:String;
public function ResolutionVO()
{
}public function get SLMstatus():String
{
return _SLMstatus;
}
public function set SLMstatus(value:String):void
{
_SLMstatus = value;
}
public function get priority():String
{
return _priority;
}
public function set priority(value:String):void
{
_priority = value;
}
public function get incidentId():String
{
return _incidentId;
}
public function set incidentId(value:String):void
{
_incidentId = value;
}
public function get assignedGroup():String
{
return _assignedGroup;
}
public function set assignedGroup(value:String):void
{
_assignedGroup = value;
}
}
【问题讨论】:
-
你能提供你的数据网格和数据的示例代码吗?
-
我的问题是如何绑定各个字段?
-
应用程序中的数据是否发生变化?您正在尝试链接您的类集合的项目内的字段。您当然可以完成这项工作(如果您有兴趣,我可以向您展示如何操作),但是如果集合中包含的数据发生更改,数据绑定将中断(您必须手动完成)。数据字段在 DataGridColumn 中本机不支持“路径”评估。
-
没有数据不变。
-
我只想知道如何向 dataField 提供数据。谢谢..
标签: apache-flex blazeds arraycollection