문제

각 열의 기본 ItemEditor가 mx.controls.textInput 인 Halo AdvancedDataGrid 구성 요소를 사용하고 있습니다.

예를 들어 데이터 공급자는 다음과 같습니다. [코드] [바인딩] Private VAR LabelSGridArray : Array= [{태그 : "Apple"}, {태그 : "* 바나나"}, {태그 : "당근"}]; [/ 코드] 그리고 AdvancedDataGrid 정의는 다음과 같습니다. [코드] [/ 코드]

DataProvider 어레이의 문자열에 별표가 붙어있는 경우이 예에서 바나나의 경우와 같이 문자열은 대괄호로 둘러싸여 회색 색상으로 표시되어야합니다.

나는 다음을 수행하려고 시도했다. [암호]

동료가 AdvancedDataGridColumn의 LabelFunction 속성을 사용하는 것에 대해 알려줍니다. 나는 그것을 시도했지만 다음과 같은 할당을 할 수 없었습니다 (열의 ID는 '태그'입니다) : [코드] tag.itemeditor.htmlText= formattedtext; [/ 코드]

static type mx.core : ifactory. 에 대한 참조를 통해 정의되지 않은 속성 HtmlText에 대한 액세스가 "오류가 발생합니다.

나는 TextInput ItemEditor를 명시 적으로 추출하려고 시도하고 (오버라이드 세트 데이터를 위해했던 것처럼)을 사용하여 LabelFunction을 사용하지만, 둘 다 올바른 범위에있게 될 수 없었습니다.

귀하의 도움이 많이 감사하며, 보니

도움이 되었습니까?

해결책

Try creating your own itemRenderer / itemEditor.

This would be your datagrid:

<fx:Script>
    <![CDATA[
        [Bindable] private var labelsGridArray:Array = [ { tag:"apple" }, { tag:"*banana" }, { tag:"carrot" } ];
    ]]>
</fx:Script>
<mx:DataGrid dataProvider="{labelsGridArray}" >
    <mx:columns>
        <mx:DataGridColumn headerText="Name" itemRenderer="NameItemRenderer"/>
    </mx:columns>
</mx:DataGrid>

And this would be your itemRenderer/editor (NameItemRenderer.mxml)

<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">
<fx:Script>
    <![CDATA[

        override public function set data(value:Object):void{
            super.data = value;
            if(value.tag.indexOf("*")!= -1){
                lblData.text = "[" + value.tag + "]";
                lblData.setStyle("color",0xFF0000);
            }
            else{
                lblData.text = "" + value.tag ;
                lblData.setStyle("color",0x000000);
            }
        }
    ]]>
</fx:Script>
<s:Label id="lblData" top="0" left="0" right="0" bottom="0"/>

I have used a normal mx:Datagrid and a spark MXDataGridItemRenderer for this, but the way it works will be the same for the AdvancedDataGrid. All you need to do is override set data()

Cheers

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top