Создание навигатора
Для перемещения по записям набора данных нужен особый элемент Web -страницы, называемый навигатором. Он состоит из набора гиперссылок или кнопок, выполняющих перемещение на первую, предыдущую, последующую и последнюю записи набора. Если вы много работаете в Microsoft Access , вы должны помнить нечто подобное, расположенное в самом низу окна таблицы, а именно — набор из четырех вышеупомянутых кнопок и поля ввода номера записи.
Dreamweaver предлагает нам встроенные средства создания навигатора, состоящего из гиперссылок. Давайте воспользуемся ими. Но сначала поставим текстовый курсор в конец созданного нами ранее динамического текста и нажмем клавишу < Enter >.
Чтобы создать гиперссылку и серверное поведение, выполняющие переход на первую запись набора, выберите пункт Move To First Record в подменю Recordset Paging меню серверных поведений панели Server Behaviors . На экране появится диалоговое окно Move To First Record
В раскрывающемся списке Recordset выберите нужный набор данных и нажмите кнопку ОК. Dreamweaver создаст в месте, где находится текстовый курсор, гиперссылку с текстом " First ". Замените ее текст на чтонибудь русскоязычное (например, "Первая") или более понятное ("«"). Все, на этом создание гиперссылки, выполняющей переход на первую запись набора, закончено.
Поставьте после гиперссылки "«" два-три неразрывных пробела, нажав нужное количество раз комбинацию клавиш <Сtrl>+< Shift >+<пробел>. Так мы отделим одну гиперссылку навигатора от другой. Чтобы создать поведение, выполняющее переход на предыдущую запись набора, выберите пункт Move To Previous Record в подменю Recordset Paging меню серверных поведений. На экране появится диалоговое окно Move To Previous Record , аналогичное окну Move To First Record . Точно так же выберите в раскрывающемся списке Recordset нужный набор данных, нажмите кнопку ОК и замените текст созданной гиперссылки на "<". Поставьте после второй гиперссылки два-три неразрывных пробела. И продолжим.
Поведения, выполняющие переход на последующую и последнюю записи набора, создаются путем выбора пунктов Move To Next Record и Move To Last Record соответственно. Одноименные диалоговые окна полностью схожи с окном Move To First Record . Так что никаких неожиданностей не должно возникнуть. Проверьте, все ли у вас получилось.
Поведения для навигатора можно создавать и подругому. Напишите текст, который станет одной из гиперссылок навигатора, выделите его и выберите в меню серверных поведений нужный пункт. После этого введите необходимые параметры в появившееся на экране диалоговое окно и нажмите кнопку ОК. Так даже проще — вам не придется исправлять в конце текст гиперссылки.
Сохраните готовую серверную страницу. К сожалению, проверить ее в режиме просмотра "живых" данных у нас не получится: хоть Dreamweaver и заменит динамический текст реальными данными, гиперссылки навигатора работать не будут. Поэтому придется всетаки открыть ее в окне Web -обозревателя. Попробуйте пощелкать по ссылкам и посмотрите, как меняется содержимое динамического текста.
Создание строки статуса набора данных
Вспомните окно таблицы Microsoft Access . Возле навигатора там отображается небольшое текстовое поле с номером текущей записи и общим количеством записей в таблице. Давайте сделаем такое же поле и на нашей серверной страничке, т. е. создадим строку статуса набора данных.
А для этого нам понадобятся системные поля этого самого набора данных. Напомним, что это такое. Системным полем набора данных называется поле, не взятое из таблицы, на основе которой создан этот набор, а созданное самим процессором баз данных и отображающее какую-либо служебную информацию. Таких системных полей Dreamweaver предлагает три: [ first record index ] (номер первой записи набора, показываемой на текущей странице), [ last record index ] (номер последней записи, показываемой на текущей странице) и [ total records ] (общее количество записей в наборе). И все они отображаются в панели Bindings в виде одноименных пунктов. Итак, поставьте текстовый курсор после самой последней гиперссылки навигатора и нажмите клавишу < Enter >. В новом текстовом абзаце наберите текст "Запись" и поставьте после него неразрывный пробел. Именно здесь мы и создадим новый динамический текст, связанный с системным полем [ first record index ]. Как это сделать, вы знаете. Впрочем, если вы хотите, можете привязать этот динамический текст к полю [ last record index ] -все равно на нашей странице отображается только одна запись.
Теперь поставьте обычный пробел, введите текст "из", поставьте неразрывный пробел и создайте второй динамический текст, привязанный к системному полю [ total records ]. Вот и все.
Сохраните ее и откройте в Web -обозревателе, чтобы проверить работу строки статуса.
Страница для одновременного просмотра нескольких записей
Ох и хорошая у нас получилась серверная страничка! (Не смотрите, что выглядит она весьма коряво, ведь сейчас наша задача — научиться писать серверные страницы. Впрочем, Web -дизайн мы уже "прошли", так что можете по ходу дела заняться украшательством.) Одно плохо — показывает она только одну запись набора. Конечно, мы создали навигатор и строку статуса набора данных, но толку от них не очень много. Вот как бы нам "запихать" на одну страничку сразу несколько записей!..
Что, вы хотите несколько записей на одной странице? Запросто!
Создайте новую серверную страницу и сохраните ее в файле Guestbook _ table.asp . Именно ее мы и превратим в чудо современного программистского искусства, показывающего несколько записей одновременно.
Первым делом создадим набор данных с такими же, как и у страницы Guestbook.asp , параметрами. Назовем его так же — Guestbook . После этого поместим на страницу динамический текст, привязанный к полю Content набора данных. И напоследок поставим текстовый курсор в конце этого динамического текста и нажмем клавишу < Enter >. Все это вам уже знакомо.
А теперь остановимся. И поговорим.
Что мы видим в окне документа? Ничего странного — просто 'серверная Web -страница, похожая на созданную нами ранее Guestbook.asp . Набор данных, динамический текст — и все. Если теперь открыть ее в Web -обозревателе, она отобразит нам одну-единственную запись. Мы уже это наблюдали. Да, но нам нужны несколько записей на одной странице!
Для этого нам поможет уже знакомая вам возможность, предлагаемая Dreamweaver специально для таких случаев, — повторяющаяся область. Да-да, нашу серверную страничку можно уподобить шаблону! В самом деле, в Dreamweaver мы создали своего рода образец Web -страницы, который в дальнейшем будет наполняться полезным содержимым. Только делать это будет не Web -дизайнер, а серверный сценарий. И данные он будет брать не из своей головы (или головы Web -писателя), а из базы данных.
Чтобы создать повторяющуюся область, сначала выделите фрагмент страницы, который станет ее содержимым. В нашем случае — это динамический текст, привязанный к полю Content набора данных. Затем выберите пункт Repeat Region меню серверных поведений панели Server Behaviors . После этого на экране появится диалоговое окно Repeat Region .
В раскрывающемся списке Recordset выберите набор данных, из которого будут извлекаться записи. Если вы хотите, чтобы на странице отображались все записи набора данных, включите переключатель All Records группы Show . Это стоит делать тогда, когда вы уверены, что записей в вашем наборе не очень много, или если содержимое их невелико по размеру. В противном случае лучше всего показывать содержимое набора данных по частям; для этого включите верхний переключатель группы Show и введите количество одновременно отображаемых записей в поле ввода Records at a Time .
Давайте сделаем нашу страничку как можно меньше. Для этого зададим количество одновременно отображаемых записей, равное трем. Это позволит нам не вводить слишком много отладочных записей в таблицу Guestbook базы данных Guestbook.mdb .
Введя все данные, нажмите кнопку ОК. Если вы передумали создавать повторяющуюся область, нажмите кнопку Cancel .
Как видите, она "выдала" нам содержимое всех трех записей, что есть в таблице Guestbook .
Теперь осталось добавить к нашей странице навигатор. Конечно, это будет не такой навигатор, который мы создали ранее. В данном случае нам нужно перемещаться не от записи к записи, а от страницы к странице. Но вам не нужно об этом беспокоиться — все хлопоты по отсчету необходимого количества записей возьмет на себя Dreamweaver . Поэтому просто создайте навигатор, как мы делали это раньше.
Если хотите, вы можете создать также строку статуса для набора данных. Здесь вам понадобятся оба системных поля, отображающих количество показываемых на странице записей: [ first record index ] и [ last record index ]. Как вы помните, первое из них показывает номер первой записи, присутствующей на странице, а вторая — номер последней из показываемых записей.
Осталось сказать о параметрах повторяющейся области. Чтобы задать их, выделите нужную повторяющуюся область и посмотрите на редактор свойств.
Единственный элемент управления, который стоит здесь рассмотреть, — это поле ввода Repeat Region . В нем задается имя повторяющейся области. Остальные элементы управления знакомы вам по диалоговому окну Repeat Region .