2011-06-13 116 views
0

我有一個Flex DataGrid,其中一個單獨的單元格需要以與其他單元格不同的方式呈現。具體來說,對於網格的一行,應該隱藏它的一個單元格。如何更改Flex DataGrid中單個單元格的樣式?

的DataGridColumn載像這樣在我的.mxml文件:

<mx:DataGridColumn editable="false" dataField="interactive" headerText="Select?" width="45"> 
     <mx:itemRenderer> 
      <mx:Component> 
       <mx:CheckBox selectedField="isInteractive" 
          click="data.isInteractive=!data.isInteractive; this.parent.parent.dispatchEvent(new Event('interactive_changed'));" 
          paddingLeft="5"/> 
      </mx:Component> 
     </mx:itemRenderer> 
    </mx:DataGridColumn> 

我最初的想法是,添加的條件MX:複選框這樣的:

<mx:CheckBox visible="{!data.isBackground}" ... 

但沒有按」 t工作 - 事實上,它以相當有趣的方式混淆了顯示器(行中的其他單元格之一獲得額外的複選框...去圖)。

我懷疑這可能是通過使用自定義的ItemRenderer類,但這似乎是一個相當簡單的情況下很多代碼開銷。有什麼想法嗎?

(我使用Flex 3.5,如果是相關的。)

+0

「但這不起作用」爲什麼不呢?你有運行時錯誤嗎?還是編譯時錯誤?或者是其他東西? – JeffryHouser 2011-06-13 13:33:31

+0

沒有運行時錯誤,沒有編譯時錯誤,只是奇怪的行爲:額外的複選框顯示在左側的網格單元格頂部。 – 2011-06-13 14:16:38

回答

0

在Flex 3.5,你需要一個定製的itemRenderer。

我這樣做的方式是我會有兩個狀態。正常和「複選框」,然後當您覆蓋itemRenderer中的數據設置器時,相應地更改您的狀態。

在Flex 4+中,Spark DataGrid上有一個「itemRendererFunction」屬性,您可以通過編程方式選擇itemRenderer,這非常酷。

+0

謝謝!建議我在不久的將來將項目移至Flex 4之前解決它並不值得。 – 2011-06-13 14:48:33

相關問題