在flex数据网格中,默认情况下单击列标题会进行排序。我想要它,如果用户单击列标题,则选择整个列。我让datagrid侦听HEADER_RELEASE事件,所以我知道单击列标题的时间。
如何突出显示列和标题,类似于选中时突出显示行的方式?
答案 0 :(得分: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>
答案 1 :(得分:0)