2009-09-30 119 views
1

在flex數據網格中,默認情況下單擊列標題進行排序。我希望如此,如果用戶點擊列標題,整個列被選中。我有datagrid監聽HEADER_RELEASE事件,所以我知道何時單擊列標題。在flex數據網格中選擇列

如何讓列和標題突出顯示突出顯示,與選中時突出顯示的行相似?

回答

2

您可以通過設置所選列的backgroundColor做到這一點:

<?xml version="1.0" encoding="utf-8"?> 

<mx:Script> 
    <![CDATA[ 

     import mx.collections.ArrayCollection; 
     import mx.events.DataGridEvent; 


     [Bindable] 
     public var mydata:ArrayCollection; 


     public function init():void 
     {        
      mydata = new ArrayCollection(); 
      mydata.addItem({ a:"John", b:"Smith" }); 
      mydata.addItem({ a:"Jane", b:"Doe" }); 

      grid1.addEventListener(DataGridEvent.HEADER_RELEASE, selectColumn); 
     } 

     public function selectColumn(event:DataGridEvent):void 
     {    
      var selectedColumn:DataGridColumn = grid1.columns[event.columnIndex]; 
      selectedColumn.setStyle("backgroundColor", "0x7FCEFF"); 
      event.stopImmediatePropagation();       
     } 
    ]]> 

</mx:Script> 

<mx:DataGrid id="grid1" editable="true" dataProvider="{mydata}" > 
    <mx:columns> 
      <mx:DataGridColumn dataField="a" headerText="A" /> 
      <mx:DataGridColumn dataField="b" headerText="B" />  
    </mx:columns>  
</mx:DataGrid> 

0

我有一個如何在我的網站Here上執行此操作的小樣本(附帶源代碼)。基本上,您檢查DataGrid排序是否與Item渲染器中的列名相同,如果是,則繪製彩色背景。

希望這會有所幫助。

卡斯帕