レコード・リストのページ操作

多くのレコードが返される場合は、PaginationControl複合タイプを使用して、ページ操作コントロールを指定できます。

Oracle Endeca Serverへの問合せでは、一度に表示できる数よりも多くのレコードが返されることがあります。この状況を克服する一般的なユーザー・インタフェース・メカニズムは、結果のページを作成して、各ページに結果セット全体のサブセットが表示されるようにすることです。

ResultsレスポンスのRecordListには、ページ操作に使用できるページ区切りコントロール(PaginationControlタイプ)が含まれます。

合計7つのレコード・ページとページ当たり3レコードがあるRecordListの例を次に示します。
<cs:ContentElement xsi:type="cs:RecordList" Id="RecordList" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <cs:NumRecords>19</cs:NumRecords>
   <cs:TotalPages>7</cs:TotalPages>
   <cs:RecordRange First="1" Last="3"/>
   <cs:RecordListEntry>
   ...
   </cs:RecordListEntry>
   <cs:PaginationControl Label="First" Active="false">
      <cs:Operator OwnerId="RecordList" Page="0" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="Previous" Active="false">
      <cs:Operator OwnerId="RecordList" Page="-1" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="1" Active="false">
      <cs:Operator OwnerId="RecordList" Page="0" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="2" Active="true">
      <cs:Operator OwnerId="RecordList" Page="1" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="3" Active="true">
      <cs:Operator OwnerId="RecordList" Page="2" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="Next" Active="true">
      <cs:Operator OwnerId="RecordList" Page="1" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   <cs:PaginationControl Label="Last" Active="true">
      <cs:Operator OwnerId="RecordList" Page="6" xsi:type="cs:PageOperator"/>
   </cs:PaginationControl>
   ...
</cs:ContentElement>
RecordListは、レコード・セット全体のページ操作コントロールを提供する初期アクセス・ポイントです。デフォルトでは、問合せは表示するレコードを最大10個返します。この設定をオーバーライドするには、表示するページ当たりのレコード数を5に設定する次の例のように、RecordListConfigタイプのRecordsPerPage要素を使用します。
<ContentElementConfig xsi:type="RecordListConfig" 
     HandlerFunction="RecordListHandler" 
     HandlerNamespace=""http://www.endeca.com/MDEX/conversation/2/0" 
     Id="RecordList" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <RecordsPerPage>5</RecordsPerPage>
</ContentElementConfig>
RecordListNumRecords要素は、問合せで返されるレコードの総数をリストします。
<cs:NumRecords>20</cs:NumRecords>
レコード・セットのデフォルトのページ・オフセットがゼロに設定されている場合は、最初の10レコードが表示されます。オフセットをレコードの3ページ目に設定する次の例のように、デフォルトのオフセットはPageOperatorタイプでオーバーライドできます。
<Operator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:type="PageOperator" OwnerId="RecordList" Page="3"/>
ページ総数が1の場合、
<cs:TotalPages>1</cs:TotalPages>

ページ操作コントロールは不要です。

ページ総数が2以上の場合は、RecordListPaginationControl要素を使用して、次の表に示すように適切なページに移動できます。
ページ・ラベル 結果
First 最初のレコード・ページ(ページ0)に移動します。
Previous 前のレコード・ページに移動します。
Next 次のレコード・ページに移動します。
Last 最後のレコード・ページに移動します。
1 最初のレコード・ページ(ページ0)に移動します。
2以上 N番目のレコード・ページに移動します。

PaginationControl要素のActive属性は、現在の状態のコンテキストでそのページ操作コントロールが意味を持つかどうかを示します。たとえば、最後のレコード・ページにいる場合、NextまたはLastページ操作コントロールはアクティブになりません。