- •Содержание
- •Глава 1. Хранение в данных в формате xml
- •§ 1.1. Назначение xml
- •§ 1.2. Достоинства xml
- •§ 1.3. Заменит ли xml html?
- •§ 1.4. Структура xml
- •1.4.1. Объявление xml
- •1.4.2. Корневой элемент
- •1.4.3. Комментарий
- •Глава 2. Отображение и хранение экономических xml-документов с использованием связывания данных
- •Основные шаги
- •§ 2.1. Использование связывания данных по одной записи
- •Перемещение между записями
- •§ 2.2. Отображение и хранение экономического xml документа по отдельным записям
- •Как хранятся данные xml
- •Проверка на наличие ошибок xml
- •Cцепление html-элементов с xml-элементами
- •§ 2.3. Использование табличного сцепления данных
- •Использование одной html-таблицы для отображения простого набора записей
- •§ 2.4. Использование постраничного отображения экономического xml документа
- •Другие способы связывания данных
- •§ 2.5. Связывание с другими html-элементами
- •§ 2.6. Использование сценариев dso для отображения экономического xml документа
- •Заключение
- •Список использованной литературы
- •Приложения
§ 2.4. Использование постраничного отображения экономического xml документа
Если XML-документ содержит много записей, можно использовать постраничный вывод группы записей за один раз вместо отображения всех записей одновременно в огромной таблице. Для активизации постраничного отображения в обычной связанной таблице, нужно выполнить следующие действия.
Установить для атрибута DATAPAGESIZE сцепленного элемента TABLE значение, равное максимальному числу записей, которые хочется отобразить за раз. Каждая страница записей будет содержать заданное число записей. Например, следующий начальный тег для элемента TABLE присваивает число "5" атрибуту DATAPAGESIZE, в результате чего в таблице будет отображено пять записей за раз:
<TABLE DATASRC="#dsogame" DATAPAGESIZE="5">
Присвоить уникальный идентификатор атрибуту ID элемента TABLE, как для следующего начального тега:
<TABLE ID="GamesTable" DATASRC="#dsogame"
DATAPAGESIZE="5">
Чтобы перемещаться между записями, нужно вызвать методы элемента TABLE, приведенные в таблице 2. Для приведенных в последнем столбце примеров предполагается, что таблица имеет идентификатор InventoryTable.
Таблица 2.
Метод элемента TABLE |
Эффект |
Пример вызова |
FirstPage |
Отображает первую страницу записей |
InventoryTable.firstPage() |
previousPage |
Отображает предыдущую страницу записей |
InventoryTable.previousPage() |
NextPage |
Отображает следующую страницу записей |
InventoryTable.nextPage() |
LastPage |
Отображает последнюю страницу записей |
InventoryTable.lastPage() |
Если в текущий момент отображена первая страница, вызов метода previousPage игнорируется, а если отображена последняя страница, то игнорируется вызов nextPage.
Можно вызвать любой из этих методов из написанного сценария. Однако наиболее простой способ обращения к одному из методов заключается в присвоении метода атрибуту ONCLICK HTML-элемента BUTTON, как в следующем примере:
<BUTTON ONCLICK="Inventorygame.nextPage()">Next Page</BUTTON>
Этот элемент отображает кнопку. Когда пользователь щелкает на кнопке, вызывается метод, присвоенный атрибуту ONCLICK, а именно, Inventorygame.nextPage.
В верхней части страницы имеется четыре элемента BUTTON, каждый из которых выполняет действие в соответствии с методами постраничного вывода таблицы. Когда в впервые открывается HTML-страница, в таблице отображаются первые пять записей. Щелчок мышью на кнопке Next Page приводит к отображению следующих пяти записей (или, в конце таблицы, оставшегося числа записей), а щелчок на кнопке Previous приводит к отображению предыдущих пяти записей (или, в начале таблицы, первых пяти записей). Щелчок на кнопке First Page или на кнопке Last Page приводит к отображению первых или последних пяти записей. На рисунке 4 показано как документ из HTML 4 будет выглядеть в Internet Explorer.
Рис. 4
(Листинг программного кода смотрите в приложении к главе 2.5)
Другие способы связывания данных
В последующих разделах я познакомился с рядом других способов для связывания не табличных HTML-элементов. Это могут быть как индивидуальные HTML-элементы, используемые для связывания данных по одной записи, так и HTML-элементы, содержащиеся в сцепленной таблице HTML. Конкретно я узнал:
как связывать другие HTML-элементы с полями XML;
как воспроизводить HTML-разметку, содержащуюся в полях XML;
как обновлять имеющиеся данные XML.
В таблице 3 сведена важная информация, которая потребуется при изучении материала последующих разделов. В ней содержатся HTML-элементы, которые можно использовать для связывания данных по одной записи – т.е., все сцепляемые HTML-элементы, за исключением элемента TABLE. Для каждого элемента описано его назначение, указано свойство элемента, через которое он сцепляется с полем XML, указано, может ли элемент передавать HTML-разметку, содержащуюся в поле XML, с которым он сцеплен, а также может ли элемент обновлять содержимое поля XML.
Таблица 3. Сцепляемые HTML-элементы (за исключением элемента TABLE)
HTML-элемент |
Назначение элемента |
Свойство (или свойства) для сцепления элемента |
Передает ли разметку HTML, содержащуюся в поле XML? |
Обновляет ли сцепленное поле XML? |
A |
Элемент "анкер"; указывает на начало или место назначения гиперссылки |
href |
Нет |
Нет |
APPLET |
Добавляет на страницу фрагмент кода Java |
param |
Нет |
Да |
BUTTON |
Отображает кнопку управления |
innerHTML и innerText |
Да |
Нет |
DIV |
Используется для форматирования части документа, такой как глава, раздел или приложение |
innerHTML и innerText |
Да |
Нет |
FRAME |
Содержит отдельный фрейм (кадр) в наборе фреймов |
src |
Нет |
Нет |
IFRAME |
Создает не выделенный обтекаемый фрейм |
src |
Нет |
Нет |
IMG |
Отображает рисунок или видеоклип |
src |
Нет |
Нет |
INPUT TYPE=CHECKBOX |
Отображает поле флажка в форме |
checked |
Нет |
Да |
INPUT TYPE=HIDDEN |
Хранит и предоставляет информацию на сервер, вместо отображения в форме |
value |
Нет |
Да |
INPUT TYPE=PASSWORD |
Аналогично INPUT TYPE=TEXT, но вводимый пользователем текст не отображается |
value |
Нет |
Да |
INPUT TYPE=RADIO |
Отображает в форме радио-кнопку |
checked |
Нет |
Да |
INPUT TYPE=TEXT |
Разрешает пользователю ввести однострочный текст в форме |
value |
Нет |
Да |
LABEL |
Отображает текстовую надпись (этикетку) |
innerText и innerHTML |
Да |
Нет |
MARQUEE |
Отображает текст с прокруткой |
innerText и innerHTML |
Да |
Нет |
SELECT |
Отображает поле списка |
Свойство text для выбранного элемента списка |
Нет |
Да |
SPAN |
Используется для форматирования фрагмента текста (например, текста внутри элемента P [абзац] или DIV) |
innerText и innerHTML |
Да |
Нет |
TEXTAREA |
Разрешает пользователю вводить многострочный текст |
value |
Нет |
Да |