Уроки Dreamweaver


Работа с динамическими атрибутами

Когда мы говорили о шаблонах (см. главу 9), то выяснили, что атрибуты тегов можно сделать изменяемыми. В Web-страницах, созданных на основе шаблона, мы можем задавать значения для этих атрибутов и, таким образом, менять их внешний вид в более широких пределах. Но атрибуты тегов можно сделать и динамическими, т. е. брать их значения из полей набора данных. Здесь мы рассмотрим, как работать с такими атрибутами.

Давайте сделаем так, чтобы содержимое разных записей набора данных Guestbook отображалось различным цветом в зависимости от значения, содержащегося в поле sign. Пусть, например, содержимое поля Content отображается темно-синим цветом, если в поле sign содержится единица ("Положительно"), темно-красным — если содержится тройка ("Отрицательно"), черным — в остальных случаях (двойка, "Нейтрально"). Соответствующие коды цветов в этом случае:

  • темно-синий — #000099;
  • темно-красный — #990000;
  • черный — #000000.

Откроем базу данных Guestbook.mdb в Access и создадим новое поле в таблице signs. Дадим этому полю имя Color, текстовый тип и установим его длину в 7 символов — этого хватит, чтобы хранить коды цветов. После чего откроем таблицу signs и введем коды цветов в соответствующие записи таблицы. После этого закроем Access.

Далее переключимся в Dreamweaver, вызовем диалоговое окно Recordset для набора данных Guestbook и добавим в него вновь созданное поле. Попробуйте сделать это самостоятельно. Если же вы хотите сразу перейти к работе с динамическими атрибутами, просто введите в поле ввода SQL такой код:

SELECT Content, Desc, Color FROM Guestbook, Signs WHERE Sign=ID

Теперь выделим содержимое повторяющейся области страницы, щелкнув по тексту "{Guestbook.Content}", и зададим для него черный цвет. Для этого воспользуемся хорошо знакомым селектором цвета в редакторе свойств. В результате Dreamweaver поместит содержимое повторяющейся области в тег <FONT> с атрибутом COLOR — как вы помните, именно с их помощью задается цвет текста.

Теперь выделите содержимое тега <FONT>, щелкнув по соответствующей кнопке секции тегов. И переключитесь в режим отображения кода. Хотя в интерактивном руководстве и описано, как привязать атрибут к полю набора данных в режиме отображения страницы, но почему-то в данном случае Dreamweaver ведет себя очень странно. В частности, раскрывающийся список Bind To, с помощью которого и выполняется привязка поля набора данных к атрибуту тега, остается недоступным. Поэтому мы поступим иначе.

Выделите значение атрибута COLOR тега <FONT>. А теперь просто перетащите на него пункт Color панели Bindings. Значение атрибута COLOR примет такой вид (выделено полужирным шрифтом):

<FONT COLOR="<%=(Guestbook.Fields.Item("Color").Value)%>">

Код, который Dreamweaver подставил в качестве значения атрибута COLOR, извлекает из поля Color набора данных значение цвета и присваивает его атрибуту COLOR. Как видите, все достаточно просто и, опять же, "прозрачно".

Точно таким же образом вы можете создавать другие динамические атрибуты. Главное - "попасть" мышью в нужный фрагмент исходного кода. Но, вероятно, вы с этим справитесь и сами.

Вот и все. Теперь можете открыть вашу страницу в Web-обозревателе и посмотреть на получившийся результат.