0
以下是用于员工报告的MXML文件片段。有条件地将AdvancedDataGridColumn添加到AdvancedDataGrid
<mx:AdvancedDataGrid id="adgID"
dataProvider="{empList}"
width="720" height="450"
defaultLeafIcon="{null}"
selectionColor="#B5B2B2" rollOverColor="#6AB9F7"
showEffect="{}">
<mx:columns >
<mx:AdvancedDataGridColumn dataField="empId" headerText="Employee ID"/>
<mx:AdvancedDataGridColumn dataField="dept" headerText="Department" />
<mx:AdvancedDataGridColumn dataField="empLastName" headerText="Last Name" />
<mx:AdvancedDataGridColumn dataField="empFirstName" headerText="First Name" />
</mx:columns>
</mx:AdvancedDataGrid>
我想为几个不同的报告使用相同的MXML文件,但在列中有一些变化。这4列对于所有报告都很常见,但很少有一些报告有额外的报告。我能够更改empList(网格的dataProvider),但我不知道如何向此代码添加额外的列,因此并非每个报表都显示了所有内容。
基本上我想这样做,
<mx:AdvancedDataGrid id="adgID"
dataProvider="{empList}"
width="720" height="450"
defaultLeafIcon="{null}"
selectionColor="#B5B2B2" rollOverColor="#6AB9F7"
showEffect="{}">
<mx:columns >
<mx:AdvancedDataGridColumn dataField="empId" headerText="Employee ID"/>
<mx:AdvancedDataGridColumn dataField="dept" headerText="Department" />
<mx:AdvancedDataGridColumn dataField="empLastName" headerText="Last Name" />
<mx:AdvancedDataGridColumn dataField="empFirstName" headerText="First Name" />
<!------------------------ Need to add this part ------------------------>
if(reportType == 1) {
<mx:AdvancedDataGridColumn dataField="empDOB" headerText="DOB" />
}
if(reportType == 2) {
<mx:AdvancedDataGridColumn dataField="empSalary" headerText="Salary" />
}
<!------------------------ Need to add this part ------------------------>
</mx:columns>
</mx:AdvancedDataGrid>
我怎样才能做到这一点?我们正在使用Flex 3.我有Flex的基本知识。
感谢您的帮助。 - AndyT
谢谢迈克。我的理解是dataProvider中的字段应该与网格中的AdvancedDataGridColumn相匹配,对吗? 如果这是正确的,那么将可见选项工作在我的情况? – AndyT 2014-10-29 21:18:03
是 - 列将针对每行对象使用属性'dataField',或者您可以指定labelFunction以根据需要格式化数据(例如,可以通过CurrencyFormatter格式化数字美元值)。但是dataField不是必需的。该列的可见属性将一起呈现或跳过列。 – 2014-10-30 20:51:32