行セットのナビゲーション・バーをページに挿入し、行操作イベントを処理します。
JSP構文
<jbo:DataNavigate
datasource="datasourceId"
[ targetURL="event-handling page | the JSP with the component" ]
[ relativeUrlPath="component's JSP page | DataNavigateComponent.jsp" ]
/>
説明
バインド先のデータソースの現在の行の位置を変更できるようにするには、<jbo:DataNavigate>コンポーネント・タグを使用します。行の現在位置を変更することにより、ユーザーはデータソースのレコードを1つずつ移動できます。たとえば、DataNavigateコンポーネントを使用して行の現在位置を変更し、その変更をDataEditコンポーネントまたはDataRecordコンポーネントに反映できます。現在の行の表示に使用するコンポーネントは、DataNavigateコンポーネントと同じデータソースにバインドされている必要があります。
DataNavigateコンポーネントでレンダリングされるナビゲーション・バーには、「First」、「Next」、「Previous」および「Last」のアクション・リンクが表示されます。ユーザーは、これらのアクション・リンクのいずれかをクリックして行の位置を変更できます。DataNavigateコンポーネントは、現在の行の位置に応じて、次の行操作アクションを処理します。
注意: ナビゲーション・バーのレンダリング時に、現在位置がデータソースの最後または最初の行にある場合、一部のアクション・リンクは使用不可の状態で表示されます。
DataNavigateコンポーネントを使用するJSPページをセッション中に初めて実行する際、行の現在位置がデータソースに存在しない場合があります。したがって、ナビゲーション・バーをレンダリングする前に、行の現在位置を明示的に設定する必要があります。行の現在位置を設定するには、DataNavigateコンポーネントを使用する任意のJSPページで、次のスクリプトレット・コードを使用します。
<% if (ViewObjectName.getRowSet().getCurrentRow() == null) { %> <jbo:RowsetNavigate datasource="myDatasource" action="First"/> <% } %>
通常、同じJSPページを使用してナビゲーション・バーの表示、行操作イベントの処理およびレコードの表示を行います。この場合、targetURLの値を指定する必要はありません。同じJSPページで操作と表示が可能なのは、DataNavigateコンポーネントが次の2つの処理を行うためです。
ただし、操作と表示を別々のJSPページで実行する場合は、targetURL属性に表示ページの名前を指定します。
属性
datasource: <jbo:DataSource>データ・タグで定義したデータソースID。
指定するデータソースでは、ビュー・オブジェクトを順方向のみのモードで使用しないでください。<jbo:DataSource>データ・タグのforwardonly
属性のデフォルト設定はfalse
です。forwardonly
属性をtrue
に設定すると、データ・コンポーネント・タグを使用するJSPページでランタイム・エラーが発生します。
relativeUrlPath: (オプション)コンポーネント・タグを実装するJSPファイルの場所。デフォルトでは、JDeveloperに用意されているDataNavigateComponent.jsp
ファイルを参照します。コンポーネントの動作をカスタマイズするために独自のコンポーネント実装ファイル(.jsp
)の名前を指定できます。カスタマイズ済の既存のコンポーネント実装ファイル(.jsp
)を参照するよう名前を編集することもできます。
作成または参照するファイルがプロジェクトのHTMLルート・ディレクトリのサブディレクトリにある場合は、相対パスを指定する必要があります。たとえば、カスタム・コンポーネント実装ファイルMyDataNavigateComponent.jsp
をcomponents
というHTMLルートのサブディレクトリに作成した場合、relativeUrlPathの値は/components/MyDataNavigateComponent.jsp
になります。
例
次の例では、バインド先のデータソースのナビゲーション・バーを表示します。この例では、DataNavigateのターゲットはこのコンポーネントを使用するJSPです。(DataNavigateタグをJSPページに挿入すると生成される)DataNavigateコンポーネントのJSPページの位置は、プロジェクトのJSPページと同じレベルです。データソースの現在の行がnullの場合、現在位置の指定にスクリプトレット・コードが必要です。これを行わない場合、DataNavigateコンポーネントは初期化されません。
<jbo:ApplicationModule id="am" configname="package1.Package1Module.Package1ModuleLocal" releasemode="Stateful" /> <jbo:DataSource id="myDS" appid="am" viewobject="DeptView"/> <% if (myDS.getRowSet().getCurrentRow() == null) { %> <jbo:RowsetNavigate datasource="myDS" action="First"/> <% } %> <jbo:DataNavigate datasource="myDS" />