Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Перемещение между записями



 

Если XML-документ содержит более одной записи (как большинство из них), связывание данных по записям становится несколько более сложным, поскольку HTML-элемент может отобразить за раз только одну запись. Отображаемая в данный момент запись называется текущей записью. (Связывание данных по одной записи иногда называют еще связыванием по текущей записи.) Изначально текущей является первая запись в документе.

DSO (объект исходных данных), ассоциированный с XML-документом, предоставляет ряд методов (функций), которыми вы можете воспользоваться при перемещении между записями. Эти методы принадлежат объекту recordset DSO и приведены в таблице 3.2. Примеры вызовов, приведенные в последнем столбце. Предполагается, что HTML-страница содержит фрагмент данных XML с идентификатором (ID) dsoInventory.

 

Таблица 3.2

 

Метод объекта recordset DSO Переход от текущей записи к Пример вызова
moveFirst первой записи в документе dsoInventory.recordset.moveFirst()
movePrevious предыдущей записи dsoInventory.recordset.movePrevious()
moveNext следующей записи dsoInventory.recordset.moveNext()
moveLast последней записи в документе dsoInventory.recordset.moveLast()
move записи с указанным номером dsoInventory . recordset . move (5) (Переход к пятой записи. Записи нумеруются, начиная с нуля)

 

Примечание. Составной объект recordset DSO соответствует стандарту технологии доступа к данным, которую Microsoft назвала ActiveX Data Objects (ADO). Можно использовать объект общего назначения ADO recordset совместно с множеством различных источников данных, а не только с XML DSO. Более подробную информацию об ADO и объекте ADO recordset можно найти на Web-сайте Microsoft, а документацию по методам, свойствам и событиям объекта recordset - на сайте Microsoft Developer Network: http://msdn.microsoft.com/.

 

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

 

<BUTTON ONCLICK="dsoInventory.recordset.moveFirst()">

First Record

</BUTTON>

 

Этот элемент отображает кнопку. Когда пользователь щелкает мышью на кнопке, вызывается метод, присвоенный атрибуту ONCLICK - dsoInventory . recordset . moveFirst ().

Если текущей является первая запись, вызов метода movePrevious приводит к перемещению в зону начала файла (BOF), где нет записей, поэтому сцепленный элемент будет пуст. Аналогично, вызов метода moveNext, если текущей является последняязапись, приводит к перемещению в зону конца файла (EOF), поэтому сцепленный элемент также будет пуст.

К счастью, объект recordset поддерживает свойство BOF, которое принимает значение true (истина), если достигнуто начало файла, а также свойство EOF, которое принимает значение true (истина), если достигнут конец файла. Вы можете использовать эти свойства для определения этих состояний и внесения необходимых корректировок. Например, приведенный ниже код предписывает при щелчке на кнопке в случае, если достигнуто начало файла, быстро отобразить первую запись:

 

<BUTTON ONCLICK="dsoInventory.recordset.movePrevious();

if (dsoInventory.recordset.BOF)

   dsoInventory.recordset.moveNext()">

Back

</BUTTON>

 

Следующий код проверяет достижение конца файла:

 

<BUTTON ONCLICK="dsoInventory.recordset.moveNext();

if (dsoInventory.recordset.EOF)

dsoInventory.recordset.movePrevious()">

Forward

</BUTTON>

 

Можно присвоить атрибуту ONCLICK (либо другим атрибутам, относящимся к событиям, например, ONMOUSEOVER) целый блок кода сценария. В этих примерах код написан на языке Microsoft JScript.

В следующем упражнении требуется создать HTML-страницу, которая отображает XML-документ (файл Big . xml)  по одной записи за один раз. Страница содержит кнопки для перехода к первой, предыдущей, последующей и последней записям.

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 238; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.038 с.)
Главная | Случайная страница | Обратная связь