برنامج ASP العالمي لتنفيذ القائمة القابلة للطي في صفحات الويب
بنك الصين بمقاطعة شانشي فرع جينتشنغ فرع العلوم والتكنولوجيا جينيو
مع تزايد شعبية الإنترنت/الإنترانت، أصبحت برمجة الويب وإنتاج صفحات الويب اتجاهًا. تقدم هذه المقالة للقراء تقنية برمجة لتنفيذ القوائم القابلة للطي في صفحات الويب، وأعتقد أنها ستضيف الكثير من الألوان إلى صفحات الويب الخاصة بك. إن ما يسمى بالقائمة القابلة للطي هي في الواقع قائمة معروضة ديناميكيًا، أي أنه عند عدم تنفيذ أي عملية قائمة، يتم عرض القائمة الرئيسية فقط عند تحديد عنصر قائمة، يتم عرض قوائمه الفرعية ديناميكيًا، وبعد اكتمال التحديد ، لقد تم إخفاؤهم مرة أخرى.
مبدأ التنفيذ
يجب أن تكون على دراية بعلامة HTML <DIV>، حيث يمكننا استخدام سمة العرض الخاصة بها لإخفاء أو عرض محتوى علامة <DIV>، والطريقة المحددة هي الإخفاء أو العرض عند تعيين العرض على لا شيء. إذا قمنا بتمييز جميع أسماء القائمة (بما في ذلك القوائم الفرعية) بـ <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-------- القائمة الفرعية الأولى من القائمة الفرعية الثالثة في القائمة الرئيسية الأولى
أدوات الكمبيوتر
0 http://…
رمز البرنامج:
<أتش تي أم أل>
<الرأس>
<لغة البرنامج النصي=VBScript>
"إظهار أو إخفاء القائمة الفرعية."
الفرعي disp_sub_menu(curid)
خافت ط م، ط، تمبيد
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>
<% '----| احسب الرقم * في معرف القائمة|-----
الدالة spnum(str)
خافت tmpstr، م، ر
tmpstr=str
م=InStr(شارع،*)
ر = 0
بينما م<>0
ر=ر+1
tmpstr=منتصف(tmpstr,m+1)
م=InStr(tmpstr,*)
ويند
سبنوم = ر
وظيفة النهاية
'-----| إرسال خيار القائمة إلى المتصفح |-----
خط الإخراج الفرعي (ct_flag، curid، txtname، ct، txtcolor)
خافت 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+;
ptl=ptl+ cursor:hand;
ptl=ptl+ عرض:+dispval+chr(34)
ptl=ptl+ onclick=+chr(34)+disp_sub_menu('+curid+')+chr(34)
ptl=ptl+>+tspace+txtname+</div>+chr(13)
آخر 'قائمة المستوى هذه هي قائمة المستوى الأدنى، المميزة بـ <DIV> و<A>
ptl=<div id=+chr(34)+curid+chr(34)
ptl=ptl+ style=+chr(34)+display:+dispval+;
ptl=ptl+line-height:25px;
ptl=ptl+tspace+<A href=+chr(34)+ct+?txt=+txtname+chr(34)+>+txtname+</A></div>+chr(13)
نهاية إذا
استجابة.اكتب ptl
نهاية الفرعية
'----|. عملية التحكم الرئيسية|-----
خافت curid،txtname،ct،ct_flag،txtcolor
تعيين fs=createobject(SCRIPTING.FILESYSTEMOBJECT)
Menufile=replace(request.servervariables(path_translated),menu.asp,mfile.txt)
تعيين txtstr=fs.opentextfile(menufile)
curid=txtstr.readline
بينما كوريد<>*END*
curid=y+Trim(curid) "قم بتكوين معرف عنصر القائمة الحالي."
txtname=Trim(txtstr.readline) 'اقرأ اسم القائمة
ct=Trim(txtstr.readline) 'اقرأ عدد القوائم الفرعية لهذه القائمة
ct_flag=1
إذا كان منتصف (ct,1,1)=0 إذن
ct_flag=0
ط = LTrim (منتصف (ط،2))
نهاية إذا
txtcolor=black
حدد الحالة spnum(curid)
الحالة 1
txtcolor=red 'لون القائمة الفرعية للمستوى الأول أ
الحالة 2
txtcolor=green 'لون القائمة الفرعية للمستوى الثاني
الحالة 3
txtcolor=blue 'لون القائمة الفرعية ثلاثي المستويات، يمكن الاستمرار في إضافته
إنهاء التحديد
خط الإخراج ct_flag، curid، txtname، ct، cstr (txtcolor)
curid=txtstr.readline
ويند
txtstr.إغلاق
%>
<HR></BODY></HTML>
يمر هذا الرمز ضمن Win98/PWS (خادم الويب الشخصي).