2011-05-26 45 views
0

所有的,我已經在我所有的Datagrid列上實現了HeaderRenderer。當我這樣做,似乎所有默認DataGrid列標題樣式正在喪失,例如:Flex 4 Datagrid s:MXDataGridItemRenderer問題 - 默認樣式會丟失?

  • 當我將鼠標懸停在列標題,在DataGrid默認是顯示它在另一種顏色(同一顏色作爲行選擇顏色) - 現在不會發生這種情況。
  • 當我點擊列標題時,DataGrid中的默認值是以另一種顏色(與行選擇顏色相同的顏色)顯示它 - 現在不會發生這種情況。

我是否在我的s:MXDataGridItemRenderer中重新應用這些樣式?如何做到這一點?

我的渲​​染器的代碼如下...

<s:MXDataGridItemRenderer 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"> 
<s:states> 
    <s:State name="none" /> 
    <s:State name="asc" /> 
    <s:State name="desc" /> 
</s:states> 

<!-- border - bottom --> 
<s:Rect bottom="0" right="0" left="0" height="1"> 
    <s:fill> 
     <s:SolidColor color="0x9C9C9C" /> 
    </s:fill> 
</s:Rect> 
<!-- border - top --> 
<s:Rect top="0" right="0" left="0" height="1"> 
    <s:fill> 
     <s:SolidColor color="0x9C9C9C" /> 
    </s:fill> 
</s:Rect> 
<s:HGroup verticalAlign="middle" width="100%"> 
    <s:HGroup horizontalAlign="left" width="100%" paddingLeft="5"> 
    <s:Label id="lblData" width="100%" 
      top="0" left="5" right="0" bottom="0" 
      paddingTop="5" paddingBottom="5" 
      verticalAlign="middle" 
      color="black" 
      text="{dataGridListData.label}" 
      maxDisplayedLines="1" 
      /> 
    </s:HGroup> 
    <s:HGroup horizontalAlign="right" verticalAlign="middle" paddingRight="2" > 
     <s:Label id="lblcolCount" 
       top="0" left="0" right="0" bottom="0" 
       paddingTop="5" paddingBottom="5" 
       verticalAlign="middle" 
       color="black" 
       text="{colCount}" /> 
     <mx:Image id="image_down" top="0" left="0" bottom="0" 
        source.asc="{GridColumnSortControlAscending}" verticalAlign="middle" 
        source.desc="{GridColumnSortControlDecending}"/> 
    </s:HGroup> 

</s:HGroup> 
<fx:Script> 
    <![CDATA[ 

     [Bindable] 
     public var colCount:String = ""; 
      ]]> 
</fx:Script> 

+0

我添加了Flex標籤以使您的問題更受關注。 – 2011-05-26 15:10:09

回答

0

是的,你將創建一個自定義渲染時失去所有的樣式。您可以查看DataGridHeader的代碼並嘗試複製它,但是我個人認爲這是太多的工作。我只是將「默認」標題渲染器添加到您設置自己樣式的所有列中,然後從那裏添加新的渲染器。

另外,誰會想要默認的Flex3樣式? yuck:P

+2

謝謝,但我實際上找到了解決方案......需要在s:MXDataGridItemRenderer標記中設置屬性autoDrawBackground =「false」。誰會猜到! - 任何地方都不明顯...... – Mark 2011-05-26 16:50:02