Как применить форматирование к кормлению данных AdvancedDataGrid в ActionScript 3.0

StackOverflow https://stackoverflow.com/questions/6063621

Вопрос

Я использую компонент Halo AdvancedDataGrid, в котором элемент по умолчанию для каждого столбца является MX.controls.textInput.

Например, поставщик данных: [Код] [Bindie] Частные VAR LabelsGridarray: Array= [{Tag: «Apple»}, {Tag: «* Banana»}, {Tag: «MarroT»}]; [/ код] И определение расширенногоDatagrid: [Код] [/ код]

Если строка из массива DataProvider предшествует звездочке - как имеет место для банана в этом примере - строка должна быть окружена квадратными кронштейнами и отображаться в сером цвете.

Я пытался сделать следующее: [КОД]

Коллега рассказал мне об использовании атрибута Labelfunction AdvancedDatagridColumn. Я попробовал это, но не смог сделать следующее задание (идентификатор столбца - это «тег»): [Код] tag.itemeditor.htmltext= formattedtextext; [/ код]

Я получаю сообщение об ошибке "Доступ возможно, неопределенный свойство htmltext через ссылку со статическим типом mx.core: ifactory.

Я попытался оба явным извлекать элемент TextInput (например, я сделал для переопределения набора данных) и использовать 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