كيفية تطبيق التنسيق إلى تغذية البيانات AdvancedDatagrid في ActionScript 3.0

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

سؤال

أنا أستخدم مكون Halo AdvancedDataGrid، حيث يكون العنصر الافتراضي لكل عمود mx.controls.textinput.

على سبيل المثال، موفر البيانات هو: [رمز] [قابلة للتغلبية] Private var labelsgridarray: array= [{tag: apple "}، {tag:" * banana "}، {tag: carrot"}]؛ [/ code] وتعريف AdvancedDatAgrid هو: [الرمز] [/ code]

إذا كانت سلسلة من صفيف DataProvider مسبوقا - كما هو الحال بالنسبة للموز في هذا المثال - يجب أن تكون السلسلة محاطة بأقواس مربعة ويتم عرضها باللون الرمادي.

حاولت القيام بما يلي: [الشفرة]

أخبرني أحد الزملاء باستخدام سمة Labelfunction's LabeLument المزيفة. حاولت ذلك ولكن لم يتمكن من القيام المهمة التالية (معرف العمود "علامة"): [رمز] tag.itemeditor.htmltext= formattedtext؛ [/ code]

أحصل على خطأ "إمكانية الوصول إلى الممتلكات المحتملة HTMLTEXT من خلال مرجع مع نوع ثابت MX.Core: Ifactory.

حاولت أن استخراج كلا من استخراج مبدع TextIncut (كما فعلت لبيانات مجموعة التجاوز) واستخدم 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