2011-05-02 33 views
0

我想为自定义MXDataGridItemRenderer设置alternatingItemColors,但似乎没有任何工作。我尝试过将应用程序,数据网格,渲染器等所有属性设置为true,否则将autoDrawBackground设置为true或false,而没有运气。最终,我正在寻找使用自定义itemRenderer(在标签后面有一组半透明基元)的方法,使用alternatingItemColors使行更易于阅读,但保持自定义渲染器的样式不变。任何建议,将不胜感激。如何让alternatingItemColors在spark MXDataGridItemRenderer中正常工作?

感谢, 〜尼

好吧,我不习惯的格式,并张贴回复等等,但我只是要追加原来的职位,希望为每个人工作好。 ..

所以,再次的itemRenderer:

<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" 
minWidth="25" minHeight="25" 
> 
<!--- States --> 
<s:states> 
    <s:State name="normal" /> 
    <s:State name="hovered" /> 
    <s:State name="selected"/> 
    <s:State name="disabled" /> 
</s:states> 
<!--- TransparencyGroup_(=(--> 
<s:Group 
    top="0" right="0" bottom="0" left="0" 
    alpha="0.7" 
    > 
    <!--- BaseRectOuter --> 
    <s:Rect 
     radiusX="5" radiusY="5" 
     top="0" right="0" bottom="0" left="0" 
     > 
     <s:fill> 
      <s:LinearGradient rotation="90"> 
       <s:GradientEntry 
        color="0x333333" 
        /> 
       <s:GradientEntry 
        color="0x121212" 
        /> 
      </s:LinearGradient> 
     </s:fill> 
    </s:Rect> 
    <!--- BaseRectInner --> 
    <s:Rect 
     radiusX="5" radiusY="5" 
     top="1" right="0" bottom="1" left="0" 
     > 
     <s:fill> 
      <s:LinearGradient rotation="90"> 
       <s:GradientEntry 
        color="0x222222" 
        /> 
       <s:GradientEntry 
        color="0x444444" 
        /> 
      </s:LinearGradient> 
     </s:fill> 
    </s:Rect> 
    <!--- InnerRect --> 
    <s:Rect 
     radiusX="4" radiusY="4" 
     top="2" right="2" bottom="2" left="2" 
     > 
     <s:fill> 
      <s:LinearGradient rotation="90"> 
       <s:GradientEntry 
        color="0x000" 
        color.hovered="0x105562" 
        /> 
       <s:GradientEntry 
        color="0x333333" 
        color.selected="0x105562" 
        /> 
      </s:LinearGradient> 
     </s:fill> 
    </s:Rect> 
    <!--- InnerStroke --> 
    <s:Rect 
     radiusX="4" radiusY="4" 
     top="1" right="2" bottom="1" left="2" 
     > 
     <s:stroke> 
      <s:LinearGradientStroke rotation="90" weight="1"> 
       <s:GradientEntry 
        color="0x000" 
        color.selected="0xCCCDDD" 
        /> 
       <s:GradientEntry 
        color="0x666666" 
        color.selected="0x000" 
        alpha="0.6" 
        /> 
      </s:LinearGradientStroke> 
     </s:stroke> 
    </s:Rect> 
</s:Group> 
<!--- _)=)--> 
<!--- Label --> 
<s:Label 
    id="lblData" 
    text="{dataGridListData.label}" 
    fontSize="12" 
    color="0xFFFFFC" 
    height="12" 
    left="12" right="12" 
    trackingLeft="20%" 
    verticalCenter="0" 
    mouseEnabled="false" 
    /> 
</s:MXDataGridItemRenderer> 

而这里的DataGrid中:

<mx:DataGrid 
xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx" 
rowHeight="30" 
headerHeight="30" 
fontFamily="Times New Roman" 
fontSize="14" 
textAlign="center" 
paddingTop="2" paddingRight="0" 
paddingBottom="2" paddingLeft="0" 
verticalScrollPolicy="auto" 
borderVisible="false" 
dropShadowVisible="false" 
rollOverColor="#01292B" 
selectionColor="#000000" 
chromeColor="#1D3A40" 
alternatingItemColors="#FFFFFF, #000000" 
> 
<fx:Script> 
    <![CDATA[ 
     import b_renderers.DGR_NameCol_01; 
     import b_renderers.DGItemRenderer_02; 
     import b_renderers.HeaderRenderer_01; 
    ]]> 
</fx:Script> 
<mx:columns> 
    <mx:DataGridColumn 
     itemRenderer="b_renderers.DGR_NameCol_01" 
     headerRenderer="b_renderers.HeaderRenderer_01" 
     headerText="(|_ Name _|)" 
     dataField="name" 
     sortable="false" 
     width="285" 
     /> 
    <mx:DataGridColumn 
     itemRenderer="b_renderers.DGItemRenderer_02" 
     headerRenderer="b_renderers.HeaderRenderer_01" 
     headerText="Time" 
     dataField="time" 
     width="65" 
     /> 
    <mx:DataGridColumn 
     itemRenderer="b_renderers.DGItemRenderer_02" 
     headerRenderer="b_renderers.HeaderRenderer_01" 
     headerText="-| Genre |-" 
     dataField="genre" 
     width="165" 
     /> 
</mx:columns> 
</mx:DataGrid> 
+0

你怎么样分享您的itemRenderer一些代码,并可能DataGrid中。 – JeffryHouser 2011-05-03 00:04:11

+0

这里是ItemRenderer: – BennyB23 2011-05-03 03:53:45

+0

Woops,让我再试一次... – BennyB23 2011-05-03 03:58:53

回答

1

这可能是有点晚了,因为这是一个三个月大的职位,但如果你还在寻找一个答案......它看起来像这可能是问题:

alternatingItemColors="#FFFFFF, #000000"

应:

alternatingItemColors="[#FFFFFF, #000000]"

+0

嘿,迟到比从未好;谢谢!] – BennyB23 2011-07-06 13:17:31