childBlockSizeについて

hGridコンポーネントの大規模レコード・セット・ナビゲーション機能を使用すると、規模の大きいレコード・セットの表示をスクロール可能なビューに分割できます。スクロール可能なビューのサイズは、childBlockSize属性で決定されます。この属性をゼロより大きい整数値に設定すると、childBlockSizeより大きい数値の子ノードを持つノードの任意のセットは、そのサイズのスクロール可能ビューにレンダリングされます。

スクロール・リンク(Scroll link (Previous)など)はビューの上または下の新しいナビゲーション行にレンダリングされます。表示すべきデータがなくなると、ナビゲーション・リンクは無効になります。有効になっているナビゲーション・リンクには、オプションのテキスト・タイプ、次の行の番号範囲(つまり前の)ビュー、行セットの行の総数が表示されます。テキスト・タイプは、ノード・データの特殊なchildTypeText属性を使用してクライアントから提供されます。

HGrid with enabled scrollable views

childBlockSize属性は、データ・ノードの子とサブノートのすべての子の表示を制御するため、そのデータ・ノードに直接設定することもできます。これにより、完全にスコープ内にあるビューのサイズの設定値が提供されます。つまり、ノードの子はセットで表示されることになります。これらのセットのサイズは、ノードを現在のノードからルートまで横断して検出した最初のchildBlockSize属性により決定されます。

hGridコンポーネントでは、イベント・ハンドラを提供する必要のあるnextおよびpreviousという2つのイベントが生成されます。いずれのイベントも同じイベント・ハンドラで処理できます。clientStateHGridDataProxyのdoHGridWindowEventというコンストラクタを使用すると、hGridでの大規模なレコード・セットのナビゲーションを処理できます。

例(UIX XML)


Example: Copyright (c) Oracle Corporation 2003. All Rights Reserved.

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (c) Oracle Corporation 2003. All Rights Reserved. -->
<!-- 67890123456789012345678901234567890123456789012345678901234567890123456-->
<!-- hGridLRS.uix -->
<!-- @version $Name: $ ($Revision: 1.9 $) $Date: 2003/11/04 04:13:04 $ -->
<!-- This file is a demo of the Large Record Set navigation capabilities of -->
<!-- the UIX hGrid element. -->
<page xmlns="http://xmlns.oracle.com/uix/controller"
      xmlns:ui="http://xmlns.oracle.com/uix/ui"
      xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
      xmlns:lrs="http://www.example.org/HGrid_LRS"
      expressionLanguage="el">
  <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
      <contents>
        <document>
          <metaContainer>
            <head title="HGrid Large Data Set demo"/>
          </metaContainer>
          <contents>
            <body>
              <contents>
                <header text="Demo">
                  <contents>
                    <flowLayout>
                      <contents>
                        <form name="radForm" destination="${ctrl:eventUrl(uix, 'size')}">
                          <contents>
                            <styledText styleClass="${uix.data.styles.types.largePrompt}"
                                        text="${uix.data.attrNames.childView.nameText} set to:"/>
                            <flowLayout>
                              <!-- Build radio buttons for selecting the view size -->
                              <contents childData="${uix.data.sizeChoices.opt}">
                                <radioSet name="sizeSelect"
                                          selectedValue="${ui:defaulting(uix.pageProp.vsiz,
                                                           uix.data.sizeChoices.default.val)}">
                                  <contents>
                                    <option text="${uix.current.txt}"
                                            value="${uix.current.val}"/>
                                  </contents>
                                  <primaryClientAction>
                                    <firePartialAction formSubmitted="true"
                                                       event="size"
                                                       targets="demoHGrid"/>
                                  </primaryClientAction>
                                </radioSet>
                              </contents>
                            </flowLayout>
                          </contents>
                        </form>
                        <spacer height="5"/>
                        <form name="f1">
                          <contents>
                            <!-- The interesting thing here is the childBlockSize attr -->
                            <hGrid id="demoHGrid"
                                   childBlockSize="${ui:defaulting(uix.pageProp.vsiz,
                                                     uix.data.sizeChoices.default.val)}"
                                   alternateText="No Data"
                                   proxy="${uix.data.proxy.hgrid}"
                                   treeData="${uix.data.tree.nodes}"
                                   partialRenderMode="self">
                              <nodeStamp>
                                <column>
                                  <columnFormat width="100%"/>
                                  <columnHeader>Node Name</columnHeader>
                                  <contents>
                                    <text text="${uix.current.text}"/>
                                  </contents>
                                </column>
                              </nodeStamp>
                              <columnFormats>
                                <columnFormat columnDataFormat="numberFormat"/>
                              </columnFormats>
                              <columnHeaderStamp>
                                <text text="${uix.current.text}"/>
                              </columnHeaderStamp>
                              <columnHeaderData>
                                <col text="Number"/>
                              </columnHeaderData>
                              <contents>
                                <text text="${uix.current.num}"/>
                              </contents>
                            </hGrid>
                          </contents>
                        </form>
                      </contents>
                    </flowLayout>
                  </contents>
                </header>
              </contents>
            </body>
          </contents>
        </document>
      </contents>
      <provider>
        <data name="attrNames">
          <inline>
            <childView nameText="childBlockSize"/>
            <childText nameText="childTypeText"/>
            <previousEvent nameText="previous"/>
            <nextEvent nameText="next"/>
            <proxyName nameText="ClientStateHGridDataProxy"/>
            <eventMethod nameText="doHGridWindowEvent"/>
            <demoClass nameText="oracle.cabo.servlet.demo.table.HGrid"/>
          </inline>
        </data>
        <data name="styles">
          <inline>
            <types default="OraInstructionText" code="OraTipText"
                   largePrompt="OraHeaderSubSub"/>
          </inline>
        </data>
        <data name="sizeChoices">
          <inline>
            <default val="5"/>
              <opt txt="Zero" val="0"/>
              <opt txt="Five" val="5"/>
              <opt txt="Ten" val="10"/>
          </inline>
        </data>
        <data name="tree">
          <method class="oracle.cabo.servlet.demo.table.HGridLargeRecordSetData"
                  method="getDataSet"/>
        /data>
        <data name="proxy">
          <method class="oracle.cabo.servlet.demo.table.HGrid"
                  method="getTreeProxy"/>
        </data>
      </provider>
    </dataScope>
  </content>
  <handlers>
    <event name="expand">
      <method class="oracle.cabo.servlet.demo.table.HGrid"
              method="doHGridExpandEvent"/>
    </event>
    <event name="focus collapseAll expandAll">
      <method class="oracle.cabo.servlet.demo.table.HGrid"
              method="doHGridFocusEvent"/>
    </event>
    <event name="next previous">
      <method class="oracle.cabo.servlet.demo.table.HGrid"
              method="doHGridWindowEvent"/>
    </event>
    <event name="size">
      <go>
        <property name="vsiz">
          <parameter name="sizeSelect"/>
        </property>
      </go>
    </event>
  </handlers>
</page>    

hGridとその名前付きの子について
hGridDataProxyについて

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

 

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