Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

Эффективность стратегий продвижения подтверждается сотрудничеством с крупными клиентами и отзывами о нашей работе.

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

Переменная action

Страница администрирования должна) производить все служебные действия с сайтом. Следовательно, она обязана выполнять-различные операции в зависимости от текущего режима работы. Например, в режиме редактирования отделов требуется совершенно иной пользовательский интерфейс, чем в режиме редактирования товаров.

Выбор текущего режима можно реализовать с помощью строковой переменной запроса и оператора Select Case среды VBScript.

Приведем пример (его не нужно вводить) использования строковой переменной запроса action для выбора режима:

 Переменная action

Если текущий режим не известен, выводится меню. Выбор режима осуществляется оператором case в ASP/VBScript. Такой подход позволяет выводить в зависимости от режима разные пользовательские интерфейсы. Кроме того, возможно повторное использование страницы в различных целях, что упрощает управление сайтом при разработке.

Формирование меню

Построим меню административных действий. При увеличении функциональности страницы администрирования оно будет расширяться.

Воспользуемся функцией Render-Option. Она обеспечивает показ ссылок и формирование URL с поддержкой перемещения по меню команд администрирования.

Построение меню с помощью Select Case

1. Добавьте на страницу admin/default .asp:

 

 Переменная action

Переменная action

Функция RenderOption устраняет утомительное повторение вызовов Response.Write. В любом месте, где потребуется форматирование пунктов (вариантов), она возвратит страницу admin/default. asp следующей строкой кода:

Response.Write Request("scriptname")

Выполним подстановку переменной action в строку запроса: Response.Write "?action=" & action

Строка запроса производит проверку action в операторе Select Case.

Пока в меню только один пункт, но позже мы введем дополнительные варианты меню:

RenderOption "Add Department", "adddepartment"

Построение формы Add Department

Выше был разработан метод вывода на экран операций администрирования. Теперь построим форму для добавления отдела ^add department).

Построение формы Add Department

1. Поскольку командой action для Add Department является adddepartment, добавьте в admin/default .asp соответствующий код вывода формы:

 Переменная action

 Переменная action

Описание работы

Сначала проверяем переменную action в строке запроса, чтобы узнать, какое действие нужно выполнить. Если значение переменной равно adddepartment, показываем форму Add Department:

case "adddepartment" %>

Действия с формой начинаются с запроса request ("scriptname"), задающего вывод страницы при нажатии кнопки подтверждения (submit):

<form action="<%=request("scriptname")%>" method=post>

Затем рисуются необходимые поля формы и кнопка редактирования: <trxtd class=heading>Name: &nbsp;</td>

<tdxinput type=text name=name value="<4=request ("name") %>"x/tr> <trxtd class=heading>Parent: &nbsp; < /td>

<tdx% RenderSelect SelectDepartments, "departmentidp" %></tr>

<trxtd colspan=2 align=center>

<br><input type=submit value="Add Department">

</tdx/tr>

Перед закрытием формы добавляем поле HIDDEN с именем savenewdepartment. Мы используем его позже для выявления нажатия кнопки подтверждения на данной форме и добавления нужного отдела:

<input type=hidden name=savenewdepartment value=l>

Переходим к RenderSelect! Поскольку мы строим средство администрирования, полезно представить список всех строк таблицы так, чтобы можно было, например, связать поставщиков и производителей с товаром. Сейчас мы используем RenderSelect с целью выбора родительского отдела для вновь создаваемого подотдела.

Сначала нужно объявить константу, указывающую RenderSelect, из какой таблицы выводятся строки. Пока RenderSelect может показать только строки таблицы Departments:

Const SelectDepartments = О

Значения TablelD и TagName передаются в RenderSelect в виде параметров: Sub RenderSelect(TablelD, TagName)

Следовательно, для вывода строк таблицы Departments переменная TablelD должна быть равна SelectDepartments, a TagName — departmentid.

Создадим тег SELECT. Введем его имя после параметра TagName (departmentid) и сформируем пустой элемент:

Response.Write "<select name=" & TagName & ">"

Response.Write "<option value="""">(Select)</option>"

Оператор Select Case проверяет значение TablelD. Позже мы применим Select Case для тестирования других констант Select, что позволит повторно использовать RenderSelect в других формах:

Select Case TablelD

Case SelectDepartments

До завершения тега select мы выводим полный список отделов методом GetAllDepartments. Этот метод возвращает набор записей (recordset) об отделах в алфавитном порядке:

Set query = Visit.Catalog.GetAllDepartments

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

IDColumn = "Department ID" NameColumn = "Name"

Следует пояснить назначение строки, где сравниваются query (IDColumn) и Request (TagName). Если эта страница выводится по каким-то причинам (возможно, при ошибке заполнения формы), последнее выделенное значение будет показано на новой странице:

If CStr(query(IDColumn)) = CStr(Request(TagName)) Then

Response.Write " selected" End If

Смысл этой функции станет понятен во время разработки других инструментов администрирования.

 

Читайте так же:
Not found

Нам доверяют

Интернет магазин