Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

6.6. Использование постраничного отображения

Если XML-документ содержит много записей, то можно использовать постраничный вывод группы записей за один раз вместо отображения всех записей одновременно в огромной таблице. Для активизации постраничного отображения в обычной связанной таблице, нужно выполнить следующие действия.

  1. Установить для атрибута DATAPAGESIZE сцепленного элемента TABLE значение, равное максимальному числу записей, которые нужно отобразить за раз. Каждая страница записей будет содержать заданное число записей. Например, следующий начальный тег для элемента TABLE присваивает число “2” атрибуту DATAPAGESIZE, в результате чего в таблице будут отображены две записи за раз:

<ТАВLЕ DATASRC="#dsoInventory" DATAPAGESIZE="2">

  1. Атрибуту ID элемента TABLE нужно присвоить уникальный идентификатор:

<TABLE ID="InventoryTable" DATASRC="#dsoInventory" DATAPAGESIZE="2">

  1. Чтобы перемещаться между записями, нужно вызывать методы элемента TABLE, приведенные в таблице 5.16. Для приведенных в последнем столбце примеров предполагается, что таблица имеет идентификатор InventoryTable.

Таблица 5.16

Методы перемещения по записям таблицы

Методы элемента TABLE

Эффект

Пример вызова

firstPage

Отображает первую страницу записей

InventoryTable.firstPage()

previousPage

Отображает предыдущую страницу записей

InventoryTable. previousPage ()

nextPage

Отображает следующую страницу записей

InventoryTable. nextPage ()

lastPage

Отображает последнюю страницу записей

InventoryTable. lastPage ()

Если в текущий момент отображена первая страница, вызов метода previousPage игнорируется, а если отображена последняя страница, то игнорируется вызов nextPage.

Можно вызвать любой из этих методов из созданного сценария. Однако наиболее простой способ обращения к одному из методов заключается в присвоении метода атрибуту ONCLICK HTML-элемента BUTTON, как в следующем примере:

<BUTTON ONCLICK="InventoryTable.nextPage()">Next Page</BUTTON>

Этот элемент отображает кнопку. Когда пользователь щелкает на кнопке, вызывается метод, присвоенный атрибуту ONCLICK, а именно, InventoryTable.nextPage.

Техника использования постраничного вывода демонстрируется в Листинге 1.16. Листинг 1.16 представляет собой HTML-страницу, которая отображает XML-документ из листинга 1.1 в таблице, атрибуту DATAPAGESIZE которой присвоено значение “2”.

В верхней части страницы имеется четыре элемента BUTTON, каждый из которых выполняет действие в соответствии с методами постраничного вывода таблицы. При первом открытии HTML-страницы, в таблице отображаются первые две записи. Щелчок мышью на кнопке “Следующая страница” приводит к отображению следующих двух записей (или, в конце таблицы, оставшегося числа записей), а щелчок на кнопке “Предыдущая страница” приводит к отображению предыдущих двух записей (или, в начале таблицы, первых двух записей). Щелчок на кнопке “Первая страница” или на кнопке “Последняя страница” приводит к отображению первых или последних двух записей. На рисунке 39 показано как документ из Листинга 1.15 будет выглядеть в Internet Explorer.

<HTML>

<HEAD>

<TITLE>Book lnventory</TITLE>

</HEAD>

<BODY>

<XML ID="dsoInventory" SRC="Inventory.xml"></XML>

<H2>Опись книг</H2>

<BUTTON ONCLICK="InventoryTabte.firstPage()">

|< Первая

</BUTTON>

  

<BUTTON ONCLICK ="InventoryTable.previousPage()">

< Предыдущая

</BUTTON>

  

<BUTTON ONCLICK ="InventoryTable.nextPage()">

Следующая >

</BUTTON>

  

<BUTTON ONCLICK ="InventoryTable.lastPage()">

Последняя >|

</BUTTON>

<TABLE ID="InventoryTable" DATASRC="#dsoInventory"

DATAPAGESIZE="2" BORDER="1" CELLPADDING="5">

<THEAD>

<TH>Заголовок</TH>

<TH>Автор</TH>

<TH>Обложка</TH>

<TH>Страниц</TH>

<TH>Цена</TH>

</THEAD>

<TR ALIGN="center">

<TD><SPAN DАТАFLD="ТIТLЕ"

STYLE="font-style:italic"></SPAN></TD>

<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>

<TD><SPAN DATAFLD="BINDING"></SPAN></TD>

<TD><SPAN DATAFLD="PAGES"></SPAN></TD>

<ТD><SРАN DATAFLD="РRICE"></SPAN></TD>

</TR>

</TABLE>

</BODY>

</HTML>

Листинг 1.16

Рисунок 39. Постраничное отображение записей таблицы