2011-03-24 74 views
0

我想要做的是隱藏整個列,如果內容全爲空。無法隱藏Flex中的列

<mx:DataGrid width="100%" dataProvider="{service}" id="dg1"> 
    <mx:columns> 
     <mx:DataGridColumn headerText="Location Origin" dataField="originLocation" visible="{data.originLocationExists}" /> 
     <mx:DataGridColumn headerText="Location Destination" dataField="destinationLocation" visible="{data.destinationLocationExists}" /> 
     <mx:DataGridColumn headerText="Location Group Origin" dataField="originLocationGroup" visible="{data.originLocationGroupExists}" /> 
     <mx:DataGridColumn headerText="Location Group Destination" dataField="destinationLocationGroup" visible="{data.destinationLocationGroupExists}"/>    
    </mx:columns> 
</mx:DataGrid> 

在上面的示例,有時在「位置源」中的所有數據將是無效的,所以在可見的財產我把一個值是true或false取決於數據。但即使所有的數據都爲空,並且可見屬性等於false,它仍然保持可見。

我能做些什麼來解決這個問題?而我正在運行在Flex 3.2中

回答

1

我不認爲你正確掌握了列的概念。列不是項目渲染器。除非您在代碼中設置了容器的'data'屬性(所有組件都具有可用於項目渲染器的'data'屬性),否則它們不會從dataProvider中獲得'data'屬性。

因此,本質上,data.originLocationExists將始終爲空,並且永遠不會綁定,使您的列始終可見。也許你只是想做{service.originLocationExists},因爲只要'服務'具有實際的屬性就可以與你的數據保持一致。