0

うまくいくもの

<s:GridColumn dataField="country.code" headerText="Country Code"/>

そうでないもの

<mx:AdvancedDataGridColumn dataField="country.code" headerText="Country Code" width="50" />

country.codeのような多くの孫属性があり、AdvancedDataGrid を使用する必要があります。両方のGridColumnの関数セット dataField(value:String)を詳しく調べると、Normal Grid のみがドット "." をサポートしています。

そのような50以上の列があるため、labelFunctionを使用したくありません...ドットをサポートするために高度なグリッド列を拡張する方法がある場合は?

解決策を提案していただけますか?ありがとうございました

4

2 に答える 2

2

AdvancedDataGrid は mx コンポーネントであるため、Spark DataGrid より古いものです。そのため、Spark DataGrid は単純に新しい機能をもたらします (古い mx DataGrid と比較した場合)。

ADG でこの機能が必要な場合は、次の 2 つの方法があります。

  1. Apache Flex JIRAにアクセスして、「改善」課題を登録してください。運が良ければ、誰かがこれを拾ってくれるかもしれません。しかし、私はそれを期待していません.ADGはAdobeによってアウトソーシングされており(ずっと前に)、他のコンポーネントと比較すると、コードの断片です。その昔ながらの汚水溜まりに飛び込んでくれる人を簡単に見つけることはできません。
  2. 自分の手で問題を解決してください。Apache Flex リポジトリのクローンを作成します。必要な機能を追加します。パッチを Apache Flex コミュニティに提出してください。ソリューションの準備ができていれば、彼らはすぐに対応してくれます。
于 2013-03-22T12:19:36.070 に答える
1

AdvancedDataGrid の Extended バージョンにこのサポートを実際に追加しました。解決策は非常に単純で、AdvancedDataGridColumn を拡張するだけです (並べ替えやフィルターなど、他にも考慮すべきことがありますが、アイデアは以下のようなものです:)したがって、以下のコードはこの特定の問題の疑似コードであり、コードベースの実際のコードではありません。

public class ExtendedAdvancedDataGridColumn{


            public var enableNestedPropertySupport:Boolean=true;
            public override function itemToLabel(data:Object, withFormatting:Boolean=true):String
            {
                if(enableNestedPropertySupport){ 
                    return  UIUtils.resolveExpression(data,dataField);
                }
                else{
                    return  super.itemToLabel(data, withFormatting);
                }
            }

        }
于 2013-03-29T15:54:38.603 に答える