apache-flex 无法在Flex中隐藏列

wtlkbnrh  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(280)

我尝试做的是隐藏整个列,如果内容都是空的。

<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>

在上面的例子中,有时“Location Origin”中的所有数据都是空的,所以我在visible属性下放置了一个值,根据数据的不同,这个值要么是真要么是假。但是,即使所有数据都是空的,visible属性等于假,它仍然是可见的。
我可以做些什么来解决这个问题?我正在运行Flex 3.2

7cwmlq89

7cwmlq892#

我认为您没有正确理解列的概念。列不是项目渲染器。它们不会从给定的dataProvider接收“data”属性,除非您在代码中的某个地方设置了容器的“data”属性(所有组件都有一个“data”属性,以便在项目渲染器中使用)。
因此,本质上,data.originLocationExists将始终为null,并且永远不会绑定,从而使您的列始终可见。也许您只是想改为执行{service.originLocationExists},因为只要'service'中包含该actual属性,它将与您的数据一致。

相关问题