ActionScript 3.0でAdvancedAtaGridのデータへのフォーマットを適用する方法
-
16-11-2019 - |
質問
Halo AdvancedDataGridコンポーネントを使用しています。列ごとのデフォルトのItemEditorはmx.controls.textInputです。
たとえば、データプロバイダは次のとおりです。 [CODE] [バインド可能] Private Var LabelSgridArray:array= [{tag: "apple"}、{タグ: "* banana"}、{タグ: "'carrot"}]。[/ code] そしてAdvancedDataGrid定義は次のとおりです。 [コード] [/コード]
DataProviderアレイからの文字列の前にアスタリスクがある場合は、この例ではバナナの場合と同様に - 文字列は角かっこで囲まれて灰色の色に表示される必要があります。
私は次のようにしようとしました: [コード]
AdvancedDataGridColumnのLabErfunction属性の使用について私に言った。私はそれを試してみましたが、以下の割り当てを行うことができませんでした(列のIDは 'tag'です)。 [CODE] Tag.IteMeditor.htmlText= FormatTedText; [/ code]
静的型MX.CORE:IFACTORY。を参照して、場合によっては未定義のプロパティHTMLTEXTのエラー「エラー」を取得します。
TextInput ItemEditorを明示的に抽出しようとし、LabeFunctionを使用してくださいが、正しいスコープに入ることはできませんでした。
あなたの助けは大いに高く評価されています、 Bonnie
解決
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