الفصل 5 أعمدة قائمة الملاحظات وتنفيذ الردود
الصفحة الرئيسية المكتملة في الفصل 4 هي في الواقع غير كاملة للغاية. أولا، لا توجد روابط في أعمدة قائمة الملاحظات ولا يمكن النقر عليها ثانيا، إذا قمت بالنقر فوق عنوان الملاحظة، فلن تتمكن من الارتباط إلى صفحة الرد؛ ثالثًا، إذا قمت بالنقر فوق المؤلف، فلن تتمكن من الارتباط بمعلومات المؤلف. سيتم تحسين هذه الوظائف في هذا الفصل.
: تعديل الارتباط التشعبي لعمود القائمة في القالب bkblog.dwt.aspx، ثم تحديث جميع صفحات الويب عند فتح الصفحة الرئيسية، والتصفح لعرض محتوى ملاحظات الدراسة فيها ترتيب تنازلي للوقت، انقر على عمود القائمة، ويمكن أيضًا عرض محتويات مذكرة الدراسة بترتيب تنازلي للوقت حسب الأعمدة.
5.1.1 قائمة إنشاء قالب
(1) افتح القالب bkblog.dwt.aspx، وحدد نصًا ديناميكيًا (menuda.LM)، وقم بإنشاء ارتباط تشعبي، واربط بالصفحة الرئيسية (index.aspx)، وحدد [Code Display View]، ثم انقل الماوس إلى المكان الذي يظهر فيه الخط العمودي الأحمر في الشكل 5-1-1. (لا توجد تعليمات خاصة أدناه، جميع الرموز هي أحرف إنجليزية)
الشكل 5-1-1 حرك الماوس إلى سمة الارتباط
(2) أدخل "?menanw=" (menanw هو متغير المعلمة)، وقم بالتبديل إلى اللوحة [Binding]، واسحب الحقل LMID ضمن مجموعة البيانات (القوائم) إلى الآن بعد إدخال علامة المساواة تظهر النتيجة في الشكل 5-1-2:
الشكل 5-1-2 أدخل السمات الديناميكية (a.href)
(3) قم بالتبديل إلى لوحة [Server Behavior]، يمكنك أن ترى أنه تمت إضافة سلوك الخادم: السمات الديناميكية (a.href)، كما هو موضح في الشكل 5 -1-3 :
الشكل 5-1-3 لوحة سلوك الخادم
(4) حدد القائمة "الصفحة الرئيسية" وقم بإنشاء رابط إلى Index.aspx؛ وحدد "اتصل بنا" وقم بإنشاء رابط إلى mailto:[email protected].
(5) احفظ القالب bkblog.dwt.aspx، وسيظهر مربع الحوار الموضح في الشكل 5-1-4.
الشكل 4-1-5 مربع حوار تحديث ملف القالب.
(6) انقر فوق الزر "تحديث" لإكمال أعمدة قائمة الملاحظات وتحديث ملف Index.aspx للصفحة الرئيسية.
5.1.2 تنفيذ عرض الأعمدة على الصفحة الرئيسية
(1) افتح ملف Index.aspx للصفحة الرئيسية، وقم بالتبديل إلى لوحة [Server Behavior]، وانقر نقرًا مزدوجًا فوق مجموعة البيانات (Ztre)، وفي مربع الحوار مجموعة البيانات المنبثقة ، انقر فوق الزر "خيارات متقدمة" كما هو موضح في الشكل 5-1-5. حدد أمر SQL في منطقة النص [SQL] لنسخه، ومن المستحسن لصقه في نص المفكرة أو Word الذي تم إنشاؤه حديثًا، وسيكون ذا فائدة كبيرة في الخطوات اللاحقة (يمكنك تخطي هذه الخطوة إذا كنت معتادًا على استخدام SQL لغة) .
الشكل 5-1-5 مربع الحوار المتقدم لمجموعة البيانات
(2) انقر فوق الزر "Simple"، وحدد حقل التصفية كـ LMID في القائمة المنسدلة [Filter]، وحدد "URL Parameter" كطريقة نقل المعلمة، ثم قم بالإدخال متغير المعلمة هو menanw. اضغط على زر "موافق"، وتظهر النتيجة في الشكل 5-1-6:
الشكل 5-1-6 تعديل مجموعة بيانات Ztre للتصفية
(3) تصفح الصفحة الرئيسية باستخدام IE ولكن لا يتم تسجيل نتائج التصفح، كما هو موضح في الشكل 5-1-7
الشكل 5-1-7 صورة تصفح الصفحة الرئيسية
(4) في الصفحة الرئيسية لتصفح IE، انقر فوق الرابط "برمجة الشبكات"، تظهر النتيجة في الشكل 4-3-3 في الفصل السابق، موضحة جميع ملاحظات دراسة برمجة الشبكات .
"انتظر لحظة، هذا لا يتماشى مع فكرة التصميم الأصلية! يمكن عرضه فقط بواسطة الأعمدة، وليس كل ملاحظات الدراسة!" هناك أيضًا مشكلة في نقل البيانات بين صفحات ASP.NET: البيانات بين النماذج في تطبيقات Windows يمكن تحقيق النقل عن طريق تحديد المتغيرات العالمية (المتغيرات الثابتة العامة) وطرق أخرى. ومع ذلك، لا يمكن استخدام هذه الأساليب لنقل البيانات بين صفحات الويب في ASP.NET. على سبيل المثال: عند النقر فوق شريط التنقل الخاص بمجموعة البيانات، سيتم نقل بيانات Ztre_currentPage، ولكن لا يمكن نقل بيانات menanw، أي أنه عند النقر فوق أي رابط تشعبي لشريط التنقل الخاص بمجموعة البيانات، سيتم نقل البيانات سيكون النقل بواسطة menan فارغًا دائمًا، وهذا غير ممكن، فهو لا يحقق عرض الأعمدة فحسب، بل يقوم أيضًا بعرض الترحيل تحت الأعمدة في نفس الوقت. هنا حل يستخدم الجلسة لتمرير المعلمات.
(5) لتمرير متغير المعلمة menanw إلى session("menanw")، قم بالتبديل إلى عرض الكود وأدخل الكود الموضح في الدائرة الحمراء في الشكل 5-1-8 قبل علامة <html>.
الشكل 5-1-8 أدخل الصفحة في ملف Index.aspx لتحميل الوظيفة الافتراضية
(6) حدد مجموعة البيانات (Ztre) في لوحة [Server Behavior]، كما هو موضح في الشكل 5-1-9، الجزء الأسود هو رمز تعريف مجموعة البيانات (Ztre).
الشكل 5-1-9 كود مجموعة البيانات Ztre
(7) ابحث عن الكود:
CommandText='<%# "SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME ASC" %>'
قم بتغيير الكود أعلاه إلى:
CommandText=' <%# IIf(((request.QueryString("menanw")<>لا شيء) أو Request.QueryString("Ztre_CurrentPage") <> لا شيء)،"SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC"،"SELECT" * FROM ZTRE ORDER BY ZITIME DESC") %>'
(8) تم العثور على الكود:
<Parameter Name="@LMID" Value='<%# IIf((request.QueryString("menanw") <> لا شيء)، طلب. QueryString("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
قم بتغيير الكود أعلاه إلى:
<Parameter Name="@LMID" Value='<% # IIf((session("menanw") <> Nothing)، session("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
(9) إجراء تصفح IE ، والنتيجة موضحة في الشكل 4-3-3 من الفصل الرابع. أكمل أفكار التصميم المعمول بها.
فكرة تصميم تنفيذ صفحة الرد: من خلال الضغط على عنوان الملاحظة يمكن ربط الصفحة بما في ذلك الملاحظة وجميع الردود المقابلة لها. من القسم السابق، يمكن ملاحظة أن هذا ليس بالأمر الصعب، ويمكن تحقيقه عن طريق تمرير معلمات التعليمات البرمجية لهذه الملاحظة فقط على الارتباط التشعبي لعنوان الملاحظة.
5.2.1 التصميم الأساسي للصفحة
(1) قم بإنشاء صفحة ديناميكية جديدة لـ ASP.NET VB hf.aspx تم إنشاؤها بواسطة القالب bkblog.dwt.aspx، وأدخل الجدول ztre في منطقة الجسم الرئيسي القابلة للتحرير، وقم بتنفيذ التصميمات ذات الصلة في الشكل 5-2-1 يظهر:
الشكل 5-2-1 مخطط تصميم الجدول ztre
(2) ابدأ Access2003، وقم بإنشاء جدول FH، واستعلام اتصال جدول YH HFRE، في الواقع يتم عرض حقول عرض الاتصال وعرضها في الشكل 5-2-2.
الشكل 5-2-2 الاستعلام عن التصميم ذي الصلة لـ HFRE
(3) اتبع الخطوات (1)-(3) في القسم 4.2.2 مجموعة البيانات لإضافة مجموعة البيانات Ztre، واسحب الحقول إلى المواضع المقابلة، وقم بتنفيذ نص ديناميكي (Ztre. ZYTEXT) وتظهر النتيجة في الشكل 5-2-3:
الشكل 5-2-3 ربط البيانات بالجدول ztre
(4) قم بتعديل مجموعة البيانات Ztre المراد تصفيتها، وحقل التصفية هو ZTID، وحدد "معلمة URL" كطريقة نقل المعلمة، ومتغير معلمة الإدخال هو ztanw.
(5) أضف مجموعة البيانات Hfre، وحقل التصفية هو ZTID، وحدد "معلمة URL" كطريقة نقل المعلمة، ومتغير معلمة الإدخال هو ztanw، وتظهر النتيجة في الشكل 5-2-4:
الشكل 5-2-4 تصميم مجموعة البيانات Hfre
(6) اسحب حقل مجموعة البيانات Hfre إلى الموضع المقابل في الجدول ztre، واضبط إعداد التنسيق للنص الديناميكي (Htre.HFTEXT) على "Encoding - تنسيق ترميز HTML" "، وقم بتغيير الحقل الأول من الجدول ztre يتم تعريف الأسطر 5 و6 و7 على أنها مناطق متكررة، ويتم ترحيل البيانات إلى الجدول ztre. وتظهر النتائج في الشكل 5-2-5:
الشكل 5-2-5 ربط مجموعة البيانات Htre بالجدول ztre
(7) افتح ملف Index.aspx للصفحة الرئيسية، وحدد النص الديناميكي (Ztre.ZTNAME)، وأنشئ ارتباطًا تشعبيًا، واربطه بـ hf.aspx، وقم بالتبديل إلى الكود عرض، ووضع رابط تغيير السمة إلى: hf.aspx?ztanw=. وبعد سحب الحقل ZTID ضمن مجموعة البيانات Ztre إلى علامة المساواة، تكون النتيجة كما هو موضح في الشكل 5-2-6:
الشكل 5-2-6 إضافة ارتباطات تشعبية ديناميكية في الكود
(8) احفظ hf.aspx وindex.asps، وأدخل بعض السجلات في جدول HF وجدول YH المقابلين في Access، وتصفح ملف Index.asps في متصفح IE، وانقر فوق ملاحظة موضوع الدراسة مع الرد كما هو موضح في الشكل 5-2-7:
الشكل 7-2-5 عرض صفحة الرد
(9) ثم انقر فوق أي رابط تشعبي في التنقل بين مجموعة البيانات، وتكون النتيجة كما هو موضح في الشكل 8-2-5:
الشكل 5-2-8 نتائج الصفحة بعد النقر على التنقل في مجموعة البيانات
! ذهب كل شيء! هذه هي مشكلة نقل البيانات بين صفحات الويب ASP.NET. يجب تعديله كما في القسم 5.1.
(10) قم بالتبديل إلى عرض الكود وأدخل الكود الموضح في الدائرة الحمراء في الشكل 5-2-9 قبل علامة <html>.
الشكل 5-2-9 أدخل الصفحة في hf.aspx لتحميل الوظيفة الافتراضية
(11) ابحث عن الكود في مجموعة البيانات Ztre:
<Parameter Name="@ZTID" Value='<%# IIf((request.QueryString ("ztanw ") <> لا شيء)، request.QueryString("ztanw"), "") %>' Type="Integer" />
استبدل request.QueryString("ztanw") في الكود أعلاه بـ session("ztanw" ")، تم تعديل رمز النتيجة إلى
<Parameter Name="@ZTID" Value='<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>' اكتب = "عدد صحيح" />
(12) ابحث عن الكود في مجموعة البيانات Hfre:
<Parameter Name = "@ZTID" Value='<%# IIf((request.QueryString("ztanw") <> لا شيء)، طلب .QueryString("ztanw" ), "") %>' Type="Integer" />
استبدل request.QueryString("ztanw") في الكود أعلاه بـ session("ztanw")، ويتم تعديل الكود الناتج إلى
< اسم المعلمة = "@ZTID" Value= '<%# IIf((session("ztanw")<> لا شيء)، session("ztanw"), "") %>' Type="Integer" />
(13) احفظ ملف hf.aspx.