Adobe Flex 3 ヘルプ

複数列によるソート

デフォルトでは、AdvancedDataGrid には、dataProvider プロパティに渡されたデータに指定された順序でデータが表示されます。AdvancedDataGrid コントロールでは、コントロールにデータが表示された後で単一または複数列でのソートを実行することもできます。

AdvancedDataGrid コントロール全体でソートを無効にするには、AdvancedDataGrid.sortableColumns プロパティを false に設定します。個別の列でソートを無効にするには、AdvancedDataGridColumn.sortable プロパティを false に設定します。

複数列に対するソートは、sortExpertMode プロパティの設定に基づいて行われます。デフォルトでは、sortExpertMode プロパティは false に設定されています。この設定の場合、列のヘッダー領域をクリックすると、その列に基づいて AdvancedDataGrid の行がソートされます。次に、ヘッダーの複数列ソート領域をクリックすると、後からクリックした列に基づいてソートされます。最初の列でソートを実行した後に、Ctrl キーを使用してすべての列を選択できるようにするには、sortExpertMode プロパティを true に設定します。

次の図は、sortExpertMode プロパティを false に設定した 3 つの列を持つ AdvancedDataGrid コントロールの例です。

sortExpertMode ÉvÉçÉpÉeÉBÇš false Ç…ê›íËǵǾ 3 ǬÇÃóÒÇšéùǬ AdvancedDataGrid ÉRÉìÉgÉçÅ[Éã

A. 列ヘッダー領域 B.複数列ソート領域

sortExpertMode を false に設定した列のソート

  1. AdvancedDataGrid コントロールの任意の列の列ヘッダー領域をクリックし、その列に基づいてソートします。例えば、「Artist」列の列ヘッダーをクリックすると、その列が昇順でソートされます。もう一度「Artist」列のヘッダーをクリックすると、降順でソートされます。
  2. 他の列ヘッダーの複数列ソート領域をクリックします。例えば、「Price」列の複数列ソート領域をクリックすると、「Artist」列を降順でソートした状態を維持しながら、「Price」列を昇順でソートすることができます。この操作によって、各アーティストの最も安価なアルバムを容易に確認することができます。
  3. 「Price」列の複数列ソート領域をもう一度クリックすると、降順でソートされます。
  4. 別の列ヘッダーの複数列ソート領域をクリックすると、その列がソート処理に含まれます。

sortExpertMode を true に設定した列のソート

  1. AdvancedDataGrid コントロールの任意の列の列ヘッダー領域をクリックし、その列に基づいてソートします。例えば、「Artist」列の列ヘッダーをクリックすると、その列が昇順でソートされます。もう一度「Artist」列のヘッダーをクリックすると、降順でソートされます。
  2. Ctrl キーを押しながら、別の列ヘッダーをクリックします。例えば、「Price」列の列ヘッダーをクリックすると、「Artist」列を降順でソートした状態を維持しながら、「Price」列を昇順でソートすることができます。この操作によって、各アーティストの最も安価なアルバムを容易に確認することができます。
  3. Ctrl キーを押しながら「Price」列の列ヘッダーをもう一度クリックすると、降順でソートされます。
  4. Ctrl キーを押しながら別の列ヘッダーをクリックすると、その列がソート処理に含まれます。

次のコード例では、sortExpertMode プロパティを true に設定した複数列のソートを実装しています。

<?xml version="1.0"?>
<!-- dpcontrols/adg/SimpleADG.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
                  
         [Bindable]
         private var dpADG:ArrayCollection = new ArrayCollection([
           {Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99},
           {Artist:'Pavement', Album:'Brighten the Corners', Price:11.99},
           {Artist:'Saner', Album:'A Child Once', Price:11.99},
           {Artist:'Saner', Album:'Helium Wings', Price:12.99},
           {Artist:'The Doors', Album:'The Doors', Price:10.99},
           {Artist:'The Doors', Album:'Morrison Hotel', Price:12.99},
           {Artist:'Grateful Dead', Album:'American Beauty', Price:11.99},
           {Artist:'Grateful Dead', Album:'In the Dark', Price:11.99},
           {Artist:'Grateful Dead', Album:'Shakedown Street', Price:11.99},
           {Artist:'The Doors', Album:'Strange Days', Price:12.99},
           {Artist:'The Doors', Album:'The Best of the Doors', Price:10.99}
         ]);                   
      ]]>
    </mx:Script>

    <mx:AdvancedDataGrid 
        width="100%" height="100%"
        sortExpertMode="true"
        dataProvider="{dpADG}">
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="Artist" />
            <mx:AdvancedDataGridColumn dataField="Album" />
            <mx:AdvancedDataGridColumn dataField="Price" />
        </mx:columns>
   </mx:AdvancedDataGrid>        
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート