Мир объектов Excel 2000



              

Создание интерфейса - часть 3


Затем я вставил в форму 10 уже упоминавшихся интерфейсных объектов - 2 скрытых и 8 видимых. На деталях процесса останавливаться не буду, а описание соответствующих тегов все-таки приведу:

<input type="hidden" name="Author" id="Author" size="20" > <input type="hidden" name="Title" size="20" id="Title"> <TEXTAREA rows=4 cols=30 id=Question name=Question> </TEXTAREA> <TEXTAREA rows=4 cols=30 id=Opinion name=Opinion> </TEXTAREA> <select size="1" name="Mark" id="Mark"> <option selected value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" value="Послать вопрос и/или отзыв и/или оценку" name="btnSendQOM" id="btnSendQOM"> <input type="reset" value="Очистить поле вопроса, отзыва" name="B2"> <INPUT type="button" value="Посмотреть мои вопросы и ответы на них" id=btnLookmyQ name=btnLookmyQ> <INPUT type="button" value="Посмотреть все вопросы и ответы на них" id=btnLookAllQ name=btnLookAllQ> <INPUT type="button" value="Посмотреть отзывы и оценки" id=btnLookOM name=btnLookOM>

Надеюсь, Вы понимаете, какой из упоминавшихся интерфейсных объектов описывает каждый из этих тегов. Взгляните, как выглядит работа с документом на вкладке Normal в процессе создания интерфейса. На рисунке 11.4 показан процесс установки свойств формы.

Вкладка Normal. Установка свойств объекта frmMain

увеличить изображение
Рис. 11.4.  Вкладка Normal. Установка свойств объекта frmMain

На рис. 11.5 показана работа с тем же документом, но в среде редактора VBScript. Обратите внимание на панель инструментов - Toolbox, содержащую интерфейсные элементы. В окне Source показан HTML-код данной страницы.

Создание интерфейса в среде редактора VBScript

увеличить изображение
Рис. 11.5.  Создание интерфейса в среде редактора VBScript

Приведу теперь несколько важных комментариев, поясняющих некоторые особенности создаваемого мной интерфейса:

  • Прежде всего, поясню, почему список с названиями книг не строится на этапе проектирования интерфейса. Дело в том, что я хочу, чтобы при каждом открытии страницы этот список отражал текущее состояние базы данных, которое по понятным причинам динамически изменяется. Поэтому на этапе проектирования задать элементы этого списка, как это сделано, например, со списком оценок, невозможно. Список строится программно, по данным запроса к базе данных, и соответствующий код работает на стороне сервера. При создании этого интерфейсного элемента ему дается имя "SelectBook".
  • В связи с тем, что список SelectBook строится программно, возникает некоторая проблема. Программно построенный сервером интерфейсный элемент не будет принадлежать форме frmMain, а, следовательно, информация, передаваемая при отсылке формы, не будет содержать необходимых сведений о выборе пользователем фиксированной книги, если только не принять специальных мер. Для решения проблемы и вводятся скрытые поля формы с именами Title и Author, содержащие название книги и фамилию автора. Хотя эти поля создаются на этапе проектирования документа, их значения заполняются программно. Соответствующий код работает уже на клиентской стороне и встроен в обработчик события Change элемента SelectBook. Как только пользователь сделает новый выбор в списке, соответствующая информация будет передана в поля Title и Author. Это позволяет при отсылке формы серверу, наряду с другой информацией передать данные о той книге, которую выбрал пользователь.
  • Давайте теперь поговорим о командных кнопках, почему их пять, а не две - Reset и Submit. Прежде всего, заметьте, что эти две кнопки в форме присутствуют. Статус Reset имеет кнопка с заголовком "Очистить поле вопроса, отзыва", статус Submit - кнопка "Послать вопрос и/или отзыв и/или оценку". Можно ли было ограничиться только этими двумя кнопками? В принципе, да. Когда у пользователя, как в нашем случае, несколько вариантов возможных действий, - посмотреть отзывы, задать вопрос и так далее, то достаточно ввести в форму, например, флажки или переключатели, с помощью которых пользователь фиксировал бы желаемое действие. Анализ состояния флажков на странице, которой передается информация из формы, позволил бы выполнить нужное действие. Я решил, однако, иметь две разные страницы, которым передаются данные из формы. ASP-страница qomToBase будет вызываться тогда, когда данные из формы - вопрос, отзыв, оценка - записываются в базу данных. Эта страница будет вызываться при нажатии

    кнопки со статусом Submit. Другая ASP-страница - qomFromBase - будет вызываться тогда, когда требуется вывести на экран пользователя информацию, хранящуюся в базе, - вопросы и ответы, имеющиеся отзывы и оценки. В отличие от предопределенных действий, связанных с кнопкой Submit, в этом случае вызов ASP-страницы и передачу ей информации придется организовать программно в обработчиках события Click соответствующих командных кнопок.




Содержание  Назад  Вперед