Универсальная программа ASP для реализации раскрывающегося меню на веб-страницах.
Банк Китая, провинция Шаньси, филиал Цзиньчэн, филиал науки и технологий, Цзиньюй
С ростом популярности Интернета/Интранета веб-программирование и создание веб-страниц стали тенденцией. Эта статья знакомит читателей с технологией программирования для реализации складных меню на веб-страницах. Я считаю, что она добавит много цвета вашим веб-страницам. Так называемое складное меню на самом деле представляет собой динамически отображаемое меню, то есть, когда никакие операции с меню не выполняются, отображается только главное меню. При выборе пункта меню его подчиненные подменю отображаются динамически, и после завершения выбора. , они снова скрыты.
Принцип реализации
Вы должны быть хорошо знакомы с HTML-тегом <DIV>. Мы можем использовать его атрибут display, чтобы скрыть или отобразить содержимое тега <DIV>. Конкретный метод заключается в скрытии или отображении, когда для параметра display установлено значение none. Если мы пометили все имена меню (включая подменю) тегом <DIV>, мы можем реализовать складывающееся меню, используя язык ASP в сочетании со скриптом для динамического управления отображением или скрытием соответствующих пунктов меню.
Проблема теперь в том, как добавить имя пункта меню в программу. Конечно, вы можете добавить его непосредственно на веб-страницу, но если вы измените параметр меню, вам придется заново изменить управляющий код веб-страницы. метод явно недостаточно разумен. В этой статье используется сохранение всех названий пунктов меню в текстовом файле в определенном формате. Когда веб-страница загружается, код ASP автоматически считывает ее содержимое. Таким образом, если параметры меню изменяются, просто сделайте соответствующие. Изменения в этом файле.
Что касается файловых операций, мы используем встроенный компонент ASP для доступа к файлам. Подробности использования см. в коде программы в конце статьи.
текстовый файл меню
В этой статье признается, что содержимое текстового файла меню должно соответствовать следующим правилам: имя, описывающее пункт меню, должно состоять из трех строк (см. пример ниже); в файле не допускаются пустые строки, перед которыми могут быть пробелы; имя пункта меню, но необходимо использовать клавишу пробела (клавиша пробела)), клавишу Tab нельзя использовать; конец файла завершается двумя строками *END*.
Предположим, имеется следующее трехуровневое меню:
программное обеспечение операционной системы
Компьютерное программное обеспечение ---- Прикладное системное программное обеспечение
Программное обеспечение для инструментов ----- ИНСТРУМЕНТЫ ДЛЯ ПК
МилыйFTP
Текст меню должен иметь следующий формат:
1 ------ указывает первое имя главного меню.
Программное обеспечение для компьютера -------- Название меню (то же, что и ниже)
3 Если не 0, укажите количество подменю этого меню, в данном примере оно равно 3;
1*1 обозначает первое подменю первого главного меню (необходимо использовать *)
программное обеспечение операционной системы
0 http://… --------- Если он равен 0, это означает, что пункт меню не имеет подменю, за которым следует URL-адрес гиперссылки.
1*2---------- указывает второе подменю первого главного меню (то же самое ниже)
прикладное системное программное обеспечение
0 http://…
1*3
Инструментальное программное обеспечение
2
1*3*1-------- 1-е подменю 3-го подменю 1-го главного меню
ИНСТРУМЕНТЫ ДЛЯ ПК
0 http://…
Код программы:
<HTML>
<ГЛАВА>
<Язык СКРИПТА=VBScript>
'Показать или скрыть подменю
Sub disp_sub_menu (curid)
dim ct,i,tmpid
ct=document.all(curid).style.ct
я = 1
Пока я<=CInt(ct)
tmpid=curid+*+cstr(i)
Если document.all(tmpid).style.display=none Тогда
document.all(tmpid).style.display=
Еще
document.all(tmpid).style.display=none
Если CInt(document.all(tmpid).style.ct)>0 Тогда
Если document.all(tmpid+*1).style.display= Тогда
disp_sub_menu(tmpid) 'Рекурсивно вызывать подменю нижнего уровня
Конец, если
Конец, если
Конец, если
я=я+1
Венд
Конец субтитра
</SCRIPT></HEAD><BODY>
<FONT color=red><H2 align=center>Пример реализации складного меню на веб-странице с использованием ASP</H2></FONT><HR>
<% '----| Вычислить * число в меню id|-----
Функция spnum(str)
дим tmpstr,m,t
tmpstr=str
m=InStr(str,*)
т=0
Пока m<>0
т=т+1
tmpstr=Середина(tmpstr,m+1)
m=InStr(tmpstr,*)
Венд
spnum=t
Конечная функция
'-----| Отправить пункт меню в браузер |-----
Дополнительная выходная_строка (ct_flag,curid,txtname,ct,txtcolor)
dim ptl,sp,dispval,tspace
sp=spnum(курид)
диспвал = нет
Если sp=0 Тогда dispval=
tspace=
Пока сп>0
tspace=tspace+
сп=сп-1
Венд
Если ct_flag=1 Тогда «Меню этого уровня имеет подменю, для их обозначения используйте только <DIV>».
ptl=<div id=+chr(34)+curid+chr(34)+ style=
ptl=ptl+chr(34)+color:+txtcolor+;
ptl=ptl+ ct:+ct+; высота строки:25 пикселей;
ptl=ptl+ курсор:рука;
ptl=ptl+ display:+dispval+chr(34)
ptl=ptl+ onclick=+chr(34)+disp_sub_menu('+curid+')+chr(34)
ptl=ptl+>+tspace+txtname+</div>+chr(13)
Else 'Меню этого уровня является меню самого низкого уровня, отмеченным <DIV> и <A>.
ptl=<div id=+chr(34)+curid+chr(34)
ptl=ptl+ style=+chr(34)+display:+dispval+;
ptl=ptl+line-height:25px; цвет:+txtcolor+; ct:0+chr(34)+>
ptl=ptl+tspace+<A href=+chr(34)+ct+?txt=+txtname+chr(34)+>+txtname+</A></div>+chr(13)
Конец, если
ответ.запись птл
Конец субтитра
'----| Основной процесс управления|-----
тусклый курид, txtname, ct, ct_flag, txtcolor
set fs=createobject(SCRIPTING.FILESYSTEMOBJECT)
файл меню = заменить (request.servervariables (path_translated), меню.asp, mfile.txt)
set txtstr=fs.opentextfile(файл меню)
curid=txtstr.readline
Пока излечно<>*END*
curid=y+Trim(curid) 'Формируем идентификатор текущего пункта меню
txtname=Trim(txtstr.readline) 'Читать имя меню
ct=Trim(txtstr.readline) 'Читать количество подменю этого меню
ct_flag=1
Если Mid(ct,1,1)=0 Тогда
ct_flag=0
ct=LTrim(Середина(ct,2))
Конец, если
txtcolor = черный
Выберите регистр spnum(curid)
случай 1
txtcolor=red 'Цвет подменю уровня 1 a
случай 2
txtcolor=green 'Цвет подменю второго уровня
случай 3
txtcolor=blue 'Цвет трехуровневого подменю, можно продолжать добавлять
Конец выбора
output_line ct_flag,curid,txtname,ct,cstr(txtcolor)
curid=txtstr.readline
Венд
txtstr.close
%>
<HR></BODY></HTML>
Этот код передается под Win98/PWS (персональный веб-сервер).