カスタムの AdvancedDataGrid があり、AdvancedDataGrid の行に 2 つの異なる色を表示する AlternateItemColors プロパティを使用します。現在、datagrid に 15 行ある場合がありますが、データがあるのは 5 行のみで、最初の 5 行のみを交互の色で表示し、残りの行は 1 色のみを表示する必要があります。誰かが過去にこれを行ったことがありますか。誰かがこれを行う方法を説明していただければ、本当に感謝しています。
前もって感謝します。
カスタムの AdvancedDataGrid があり、AdvancedDataGrid の行に 2 つの異なる色を表示する AlternateItemColors プロパティを使用します。現在、datagrid に 15 行ある場合がありますが、データがあるのは 5 行のみで、最初の 5 行のみを交互の色で表示し、残りの行は 1 色のみを表示する必要があります。誰かが過去にこれを行ったことがありますか。誰かがこれを行う方法を説明していただければ、本当に感謝しています。
前もって感謝します。
Datagridをオーバーライドし、drawRowBackgroundメソッドをオーバーライドする必要があります。rowIndが行数を超える場合は、デフォルトの色を設定します。下記のコードスニペットを参照してください-
パブリッククラスCustomDataGridはAdvancedDataGridを拡張します{
protected override function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{
var XMLdata:XML=rowNumberToData(dataIndex) as XML;
if(XMLdata!=null){
if(XMLdata.attribute(Constants.col) != undefined && XMLdata.attribute(Constants.col) != ""){
color=XMLdata.attribute(Constants.col);
}else{
color=0xFFFFFF;
}
}
super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);
}
}
高さが許容するよりも行数が少ない場合は、rowCount を実際の行数に設定するか、drawRowBackground をオーバーライドします。
ADG にアイテム レンダラーを使用してみてください: -
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var dpHierarchy:ArrayCollection= new ArrayCollection([
{name:"A", region: "Arizona"},
{name:"B", region: "Arizona"},
{name:"C", region: "California"},
{name:"D", region: "California"}
]);
]]>
</fx:Script>
<mx:AdvancedDataGrid id="myADG"
width="500" height="500"
paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0"
dataProvider="{dpHierarchy}"
itemRenderer="DrawAlternateRowColor">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" headerText="Name" />
<mx:AdvancedDataGridColumn dataField="region" headerText="Region" />
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>
//ItemRenderer 名: - DrawAlternateRowColor -- CADG と同じ概念を使用できます。
<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true" alternatingItemColors="[#0000FF, #FF0000]"
width="100%" height="100%">
<s:Label id="lblData" verticalAlign="middle" text="{listData.label}" />
</s:MXAdvancedDataGridItemRenderer>