詳細表示でのdetailの使用

注意: この手順では、このトピックの最後に記述されているインライン・データがUIXファイルに挿入されているものとして説明しています。tableDataというインライン・データで、行のデータが提供されます。

tableコンポーネントでdetailを使用するには、次のようにします。

  1. 設計構造ウィンドウで、各行の追加詳細情報を表示したり非表示にしたりする「table」ノードを選択します。
  2. プロパティ・インスペクタで、次のdetail-disclosure属性を設定します。

    注意: データ・バインディングを使用する場合には、「コンポーネントの属性のデータ・バインディング」を参照してください。

  3. 設計構造ウィンドウで、「table」ノードを展開して、名前付きの子「detail」ノードを探します。「detail」を右クリックし、詳細領域に表示する子detailを挿入します。この子であるdetailが、現在のDataObjectとして現在の表の行であるDataObjectとともにレンダリングされます。これにより、通常の列のスタンプの場合と同じ方法でデータ・バインディングを使用できるようになります。現在表が表示されている状態を維持するには、disclosedという非表示のフォーム・パラメータを詳細セクションに追加します。

注意: この手順では、対話型の詳細表は作成されません。まず、表示または非表示にするためにユーザーが選択した行の索引を取得するイベントを処理してから、イベント名に従って詳細領域を表示または非表示にするかどうかを決定する必要があります。このイベント・ハンドラでは、その表の現在の公開状態を格納するデータ・セットを作成する必要があります。イベント・ハンドラの実装の詳細、およびその表の公開状態の新旧の状態を決定するDataObjectListを作成する際にデータ・セットを使用するクラスの詳細は、「ADF UIX開発者ガイド」のADF UIXを使用したtableの作成に関する説明を参照してください。

例(UIX XML)


...
<provider>
  <data name="tableData">
    <inline>
      <row name="Person 1" age="11" blood="B" phone="555-1111"/>
      <row name="Person 2" age="12" blood="AB" phone="555-2222"/>
      <row name="Person 3" age="13" blood="O" phone="555-3333"/>
      <row name="Person 4" age="14" blood="B" phone="555-4444"/>
      <row name="Person 5" age="14" blood="O" phone="555-5555"/>
      <row name="Person 6" age="16" blood="AB" phone="555-6666"/>
    </inline>
  </data>
</provider>
...
<contents>
  ...
  <table alternateText="No Items Found."
         tableData="${uix.data.tableData.row}"
         allDetailsEnabled="true"
         formSubmitted="true"
         width="55%">

    <contents>
      <!-- regular column stamp -->
      <column>
        <columnHeader>
          <styledText text="Name"/>
        </columnHeader>
        <contents>
          <styledText text="${uix.current.name}"/>
        </contents>
      </column>
      <column>
        <columnHeader>
          <styledText text="Age"/>
        </columnHeader>
        <contents>
          <styledText text="${uix.current.age}"/>
        </contents>
      </column>
    </contents>

    <!-- list indicating which detail rows are currently disclosed -->
    <detailDisclosure>
      <row disclosed="false"/>
      <row disclosed="false"/>
      <row disclosed="true"/>
      <row disclosed="false"/>
      <row disclosed="false"/>
      <row disclosed="true"/>
    </detailDisclosure>

    <detail>
      <!-- this is the details stamp -->
      <labeledFieldLayout>
        <contents>
          Name
          <styledText text="${uix.current.name}" styleClass="OraDataText"/>
          Age
          <styledText text="${uix.current.age}" styleClass="OraDataText"/>
          Blood Group
          <styledText text="${uix.current.blood}" styleClass="OraDataText"/>
          Phone Number
          <styledText text="${uix.current.phone}" styleClass="OraDataText"/>
        </contents>
      </labeledFieldLayout>
    </detail>
  </table>
</contents>
...    

tableとその名前付きの子
表でのデータ・バインディングについて

列の作成
tableコンポーネントの使用

 

Copyright © 1997, 2004, Oracle. All rights reserved.