الفصل السابع: اكتمل تنفيذ صفحة تسجيل دخول مستخدم BLOG الخاصة بـ Doking
، ويمكن للمستخدمين الآن تسجيل الدخول إلى موقع الويب ونشر الملاحظات والرد عليها.
تسجيل دخول المستخدم، بعد صحة التحقق، يتغير مظهر الصفحة بعد تسجيل دخول المستخدم.
(1) افتح القالب bkblog.dwt.aspx، وأدخل الجدول yhtab في العمود الأيسر، وقم بتصميمه كما هو موضح في الدائرة السوداء في الشكل 7-1.
(2) أدخل مجموعة البيانات yhlog حول استعلام جدول YH للتحقق من صحة تسجيل دخول المستخدم.
①قم بتعيين مجموعة البيانات yhlog للتصفية، كما هو موضح في الشكل 7-2.
الشكل 7-1 رسم تصميمي لطاولة YHTAB
الشكل 7-2 أدخل مجموعة البيانات yhlog
② انقر فوق الزر "متقدم" للتبديل إلى وضع مجموعة البيانات المتقدمة، كما هو موضح في الشكل 7-3.
الشكل 7-3 أدخل مجموعة البيانات yhlog
③ انقر فوق المعلمة "+" ليظهر مربع الحوار "Edit Parameters"، واملأ الاسم كـ "@Logpas"، ثم حدد "WChar" كنوع، كما هو موضح في الشكل 7-4.
الشكل 7-4 إضافة للمشاركة في Logpass
④انقر فوق الزر "إنشاء" ليظهر مربع الحوار "إنشاء قيمة"، المسمى "Logpass"، وحدد "Form Variable" كمصدر، كما هو موضح في الشكل 7-5.
الشكل 7-5 مربع الحوار إنشاء قيمة
⑤ انقر فوق "موافق" لحفظ الإعدادات والعودة إلى مربع الحوار yhlog لمجموعة البيانات. قم بتعديل عبارة SQL وتظهر نتيجة التعديل في الشكل 7-6.
الشكل 7-6 تعديل مجموعة البيانات yhlog
(3) قبل العلامة <html>، أدخل الكود الموضح في الدائرة الحمراء في الشكل 7-7.
الشكل 7-7 تحديد وظيفة uselog
(4) اسحب الحقل YHNAME ضمن مجموعة البيانات yhlog في القالب bkblog.dwt.aspx إلى أي موضع في الصفحة، ثم اسحب الحقل YHID ضمن مجموعة البيانات yhlog بعده الرمز كما يلي:
<%# yhlog.FieldValue("YHNAME", Container) %><%# yhlog.FieldValue("YHID", Container) %>
قم بتغيير الكود أعلاه إلى:
<%# uselog(yhlog.FieldValue(" YHNAME"، Container)،yhlog .FieldValue("YHID"، Container)) %>
(5) أدخل مجموعة البيانات bjre حول استعلام جدول ZT وقم بإرجاع العدد الإجمالي لملاحظات الدراسة التي نشرها المستخدم.
① اضبط مجموعة البيانات على "تصفية"، وحقل التصفية هو: YHID، وطريقة التصفية هي: قيمة الإدخال، كما هو موضح في الشكل 7-8.
الشكل 7-8 أدخل مجموعة البيانات bjre
② انقر فوق "متقدم"، وقم بالتبديل إلى وضع مجموعة البيانات المتقدمة، وقم بتعديل SQL كما هو موضح في الشكل 7-9.
الشكل 7-9 تعديل مجموعة البيانات bjre
③انقر فوق الزر "تحرير" وقم بتغيير YHID إلى جلسة ("USEID") في حقل النص، وتظهر النتيجة في الشكل 7-10.
الشكل 7-10 تحرير معلمات مجموعة البيانات
④ اضغط على مفتاح "موافق"، ثم اضغط على مفتاح "موافق" لإكمال مجموعة البيانات.
(6) أدخل مجموعة البيانات حول استعلام جدول HF وأرجع العدد الإجمالي لملاحظات الدراسة التي نشرها المستخدم. باستثناء جداول الاستعلام المختلفة، فإن الإعدادات الأخرى هي نفس مجموعة البيانات bjre (يمكنك نسخ ولصق مجموعة البيانات plre أولاً، ثم تعديلها).
(7) اسحب الحقل Eprl100 ضمن مجموعة البيانات bjre إلى خلف "أرسل ملاحظة:" في الجدول yhtab؛ اسحب الحقل Eprl100 ضمن مجموعة البيانات plre إلى خلف "أرسل ردًا:" في الجدول yhtab.
(8) حرك المؤشر قبل "معلومات المستخدم" في جدول yhtab، ثم انقر فوق "ربط البيانات" ضمن القائمة المختصرة لـ ASP.NET، وتظهر النتيجة في الشكل 7-11.
الشكل 7-11 أدخل بيانات منضمة
ضع المؤشر على الخط الرأسي الأحمر في الشكل 71 وأدخل: session("USENAME")
(9) ارجع إلى عرض التصميم وأنشئ ارتباطًا تشعبيًا إلى "نشر ملاحظات جديدة" في الجدول yhtab. : .. /ztfb.aspx
قم بإنشاء ارتباط تشعبي لـ "تعديل المعلومات" في الجدول yhtab: ../yhsg.aspx
وتظهر النتيجة في الشكل 7-12.
الشكل 7-12 تعديل جدول yhtab
(10) حدد جدول yhtab، ارجع إلى عرض الكود، اضغط على "Ctrl+X" أو حدد "قص" في القائمة [تحرير]، الطريقة القديمة: الصقه في المفكرة التي تم إنشاؤها حديثًا أو في مستند Word
(11) ارجع إلى عرض التصميم، وحدد علامة تبويب سجل الجدول، وحرك المؤشر إلى موضع الخط العمودي الأحمر كما هو موضح في الشكل 7-13.
الشكل 7-13 انتقل إلى موضع المؤشر
(12) وأدخل الرمز، كما هو موضح في الدائرة الحمراء في الشكل 7-14.
الشكل 7-14 أدخل الكود قبل التسمية <form>
(13) حرك المؤشر بعد علامة نهاية Yhlogfrm </form> وأدخل الكود، كما هو موضح في الدائرة الحمراء في الشكل 7-15.
الشكل 7-15 أدخل الكود بعد العلامة </form>
(14) الصق الجدول yhtab المقطوع في الخطوة 7 قبل الكود <%end if%> وبعد <% else %>.
(15) احفظ القالب bkblog.dwt.aspx. افتح كافة صفحات الويب المستندة إلى قالب bkblog.dwt.aspx، وانسخ والصق مجموعات البيانات المضافة حديثًا yhlog وbjre وplre في قالب bkblog.dwt.aspx في [سلوك الخادم]. ثم أدخل الرمز كما في الخطوة 3، ولا بأس!
(16) قم بتصفح ملف Index.aspx في متصفح IE، كما هو موضح في الشكل 7-16 قبل تسجيل دخول المستخدم، وكما هو موضح في الشكل 7-17 بعد تسجيل دخول المستخدم بنجاح. تذكر أن ASP.NET لا يدعم نقل ترميز gb2312، وقد تم ذكر ذلك في الفصل السابق، لذلك لا ترتعش في المستقبل.
الشكل 16-7 قبل تسجيل دخول المستخدم
الشكل 7-17
تذكير بعد تسجيل دخول المستخدم: لتسهيل تعلم القراء، تم تقسيم البرنامج التعليمي إلى وحدات. في الواقع، يجب تنفيذ جميع الوظائف في القالب من البداية، وخاصة مجموعة البيانات ومحمل الرأس الذي يجب إدراجه في القالب، لأن هذه لا يمكنها تحديث صفحة الويب بعد التعديلات اللاحقة.
بعد تسجيل الدخول، يمكن للمستخدمين نشر رسائل الرد على كل ملاحظة دراسية.
(1) افتح hf.aspx، وأدخل النموذج yhplfrm، ثم أدخل الجدول Hftab. أدخل عنصر تحكم مربع نص الخادم في الجدول بالمعرف HFNAME؛ وأدخل عنصر تحكم منطقة نص الخادم بالمعرف HFTEXT؛ زر مع المعرف في الأسفل، قم بضبطه على معطل، وتظهر النتيجة في الشكل 7-18.
الشكل 7-18 التصميم ذو الصلة لجدول هفتاب
(3) ربط جلسة البيانات ("اسم الاستخدام") بعد "الاسم:" في جدول هفتاب (الطريقة كما هو موضح في الخطوة 8 من 7.1 لربط اسم المستخدم قبل "معلومات المستخدم" ).
(4) اسحب الحقل ZTNAME ضمن مجموعة البيانات Ztre إلى مربع النص HFNAME، في نافذة الخصائص لمربع النص HFNAME، قم بتغيير القيمة الأولية:
<%# Ztre.FieldValue("ZTNAME"، Container) %>
إلى:
<%# "RE:"&Ztre.FieldValue("ZTNAME", Container) %>
(5) حدد الزر من الأسفل، وانقر بزر الماوس الأيمن وحدد شريط الحالة <input # plbottom>، وحدد "تحرير التسمية" في النافذة المنبثقة -أعلى القائمة المختصرة، كما هو موضح في الشكل 7-19 عرض.
الشكل 7-19 حدد علامة التحرير السريع <input # plbottom>
(6) في علامة التحرير السريع <input # plbottom> المنبثقة، قم بتغيير:
Disabled="true"
إلى:
Disabled=<%# iif((session( "USENAME")<>nothing),false,true) %>
تظهر النتيجة في الشكل 7-20.
الشكل 7-20 تقوم تسمية التحرير المختصرة <input # plbottom>
بتعيين الزر plbottom، ويتم تعطيله قبل تسجيل دخول المستخدم ويصبح متاحًا بعد تسجيل دخول المستخدم.
(4) أضف سلوك خادم سجل الإدراج، وأرسل القيمة من النموذج yhplfrm، وحدد جدول الإدراج كـ HF، وتظهر الإعدادات الأخرى في الشكل 7-21.
الشكل 7-21 إضافة سلوك خادم سجل الإدراج
في الشكل 7-21، يمكنك أن ترى أن الحقول HFID وHFTIME وYHID وZTID لا تحصل على قيم. الحقل HFID هو رقم تلقائي، وستضيف قاعدة البيانات تلقائيًا قيمة إلى السجل؛ يحتوي الحقل HFTIME على قيمة افتراضية تم تعيينها على date() في Access، لذا ستضيف قاعدة البيانات تلقائيًا تاريخ اليوم إلى السجل المضاف حديثًا. الحقل YHID هو رمز معرف المستخدم الذي قام بتسجيل الدخول، والحقل ZTID هو معرف الملاحظة التي سيتم نشرها. لذلك، يجب إضافة رمز معرف المستخدم الذي قام بتسجيل الدخول إلى الحقل YHID، ويجب إضافة رمز معرف الملاحظة المراد نشرها إلى الحقل ZTID.
(5) ارجع إلى عرض الكود وابحث عن الكود الخاص بإدراج السجل (dkconn، HF)، كما هو موضح في الجزء الأسود المحدد في الشكل 7-22.
الشكل 7-22 ابحث عن الكود الخاص بإدراج السجلات (dkconn, HF)
(6) قم بتغيير الكود:
CommandText='<%# "INSERT INTO HF (HFNAME, HFTEXT) VALUES (?, ?,)" %>'
إلى:
CommandText ='<%# "INSERT INTO HF (HFNAME, HFTEXT, ZTID, YHID) VALUES (?, ?, ?, ?)" %>'
(7) أضف المعلمات بالترتيب:
<اسم المعلمة = "@ZTID" القيمة = '<%# Ztre.FieldValue("ZTID", Container) %>' النوع = "عدد صحيح" />
<اسم المعلمة = "@YHID" Value='<%# SESSION("USEID") %>' النوع= " عدد صحيح" />
تظهر النتيجة في الشكل 7-23.
الشكل 7-23 نتائج التعديل لإدراج كود السجل (dkconn, HF)
(8) قبل نشر رسالة الرد، يجب التحقق من عنوان الرد ومحتوى الرد لمنع نشر رسائل الرد ذات العناوين الفارغة أو المحتوى الفارغ. راجع طريقة إدراج عنصر تحكم التحقق من الصحة RequiredFieldValidato في القسم 6.2، وأضف عنصر تحكم التحقق من الصحة RequiredFieldValidato إلى مربع النص HFNAME وعنصر التحكم في منطقة النص HFTEXT على التوالي.
(9) عندما ينشر المستخدم رسالة رد، يجب زيادة العدد الإجمالي للردود في ملاحظات الدراسة تلقائيًا بمقدار 1، أي أنه يجب زيادة حقل HFZS ضمن الجدول ZT تلقائيًا بمقدار 1.
① في لوحة [سلوك الخادم]، أدخل سلوك الخادم "تحديث السجل"، وقم بتعيين جدول التحديث على ZT، وقم بتعيين القيمة المرسلة مؤقتًا من النموذج yhplfrm، وقم بتعيين مؤقتًا: يحصل "HFZS" على القيمة من "HFTEXT" (كما هو موضح في الصورة) 'Integer') ؛ الافتراض المؤقت: يستخدم 'ZTID' 'HFTEXT' كـ 'Integer' لتحديد السجلات
② لماذا جميعها مؤقتة؟ وذلك للسماح لبرنامج Dreamweaver بإنشاء بعض التعليمات البرمجية تلقائيًا أولاً، بحيث يمكن تعديلها لاحقًا. قم أولاً بالتبديل إلى عرض الكود، وابحث عن الكود الأصلي لسجل التحديث (dkconn,ZT)، وابحث عن الكود:
<Parameter Name="@HFZS" Value='<%# IIf((Request.Form("HFTEXT"" ) <> لا شيء ), Request.Form("HFTEXT"), "") %>' Type="Integer" />
<اسم المعلمة="@ZTID" Value='<%# IIf((Request.Form(" HFTEXT") < > لا شيء)، Request.Form("HFTEXT"), "") %>' Type="Integer" />
قم بتغييره إلى:
<Parameter Name="@HFZS" Value='<%# Ztre. FieldValue(" HFZS", Container)+1 %>' النوع = "عدد صحيح" />
<اسم المعلمة = "@ZTID" Value='<%# session("ztanw") %>' النوع = "عدد صحيح" />
(10) احفظ ملف hf.aspx.
بعد تسجيل الدخول، يمكن للمستخدمين نشر ملاحظات دراسية جديدة بالإضافة إلى رسائل الرد.
(1) قم بإنشاء صفحة ويب ديناميكية جديدة ztfb.aspx تم إنشاؤها من القالب bkblog.dwt.aspx، وقم بإدراج جدول ztfb بعمود واحد وخمسة صفوف في منطقة الجسم الرئيسي القابلة للتحرير.
(2) أضف مجموعة البيانات zthb، واضبط المرشح على YHID، واضبط المعلمة على متغير المرحلة USENAME. يظهر التصميم في الشكل 7-24.
الشكل 7-24 إضافة مجموعة البيانات ztfb
(3) اسحب الحقول ذات الصلة ضمن مجموعة البيانات إلى الجدول ztfb للتعرف على الطريقة، راجع الطريقة الموجودة في القسم 4.2.
(4) افتح hf.aspx، وانسخ النموذج yhplfrm، والصقه في الصف الخامس من الجدول zthb في صفحة الويب ztfb.aspx، وقم بإلغاء تحديد مربع النص HFNAME، وقم بإجراء التعديلات اللازمة، وتظهر النتيجة في الشكل 7-. 25.
الشكل 7-25 تصميم الجدول ztfb
(2) أعد تسمية مربع النص HFNAME إلى ZTNAME ومنطقة النص HFTEXT إلى ZTTEXT.
(3) اجعل الصفوف الأول والثاني والثالث من الجدول zthb هي المناطق المتكررة لمجموعة البيانات zthb، ثم أدخل التنقل في مجموعة البيانات في الصف الرابع من الجدول.
(4) أدخل LMID القائمة/القائمة، وانقر فوق قيمة القائمة في نافذة خصائصها، وفي مربع حوار قيمة القائمة المنبثقة، أدخل تسمية المشروع على النحو التالي: عنصر التصميم القيمة على النحو التالي: 1، اضغط على "موافق" المفتاح، كما هو موضح في الشكل 7-26 الموضح.
الشكل 7-26 مربع حوار قيمة قائمة LMID
(5) احتفظ بتحديد LMIDl للقائمة/القائمة، وانتقل إلى عرض الكود، وابحث عن الرمز الأصلي لـ LMID للقائمة/القائمة، واسحب الحقل LMID أسفل قائمة مجموعة البيانات، واستبدل البيانات بـ القيمة تساوي 1، كما هو موضح في الشكل 7-27.
الشكل 7-27 قم بسحب وإسقاط الحقل LMID ضمن قائمة مجموعة البيانات
(6) اسحب الحقل LM ضمن قائمة مجموعة البيانات واستبدل "عنصر التصميم" وتظهر النتيجة في الشكل 7-28.
الشكل 7-28 اسحب الحقل LM ضمن قائمة مجموعة البيانات
(7) حدد الكود الموجود في الدائرة الحمراء في الشكل 7-3-5 وقم بتعريفه كمنطقة متكررة لمجموعة البيانات، وتظهر النتيجة في الشكل 7-29.
الشكل 7-29 حدد منطقة تكرار قائمة البيانات في القائمة
(8) لإضافة سلوك الخادم "إدراج سجل"، وتظهر إعداداته في الشكل 7-30.
الشكل 7-30 إضافة سلوك الخادم "إدراج سجل"
(9) قم بالتبديل إلى عرض الكود، وابحث عن الكود الأصلي لسجل الإدراج (dkconn، ZT)، وابحث عن الكود:
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT)) ) VALUES (?, ?, ?)" %>'
التغيير إلى:
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT,YHID) VALUES (?, ?, ?, ?)" %>'
( 10) إضافة معلمات:
<Parameter Name="@YHID" Value='<%# session("USEID") %>' Type="Integer" />
تظهر النتيجة في الشكل 7-31.
الشكل 7-31 الكود الأصلي لإدخال تعديل السجل (dkconn، ZT)
تصميم الصفحة لتعديل معلومات المستخدم هو في الأساس نفس تصميم صفحة تسجيل المستخدم.
(1) افتح صفحة التسجيل yhlogok.aspx، واحفظها باسم yhsg.aspx، وقم بإجراء التعديلات المناسبة. وتظهر النتيجة في الشكل 7-32.
الشكل 7-32 تصميم صفحة yhsg.aspx
(2) احذف سلوك الخادم "إدراج سجل (dkconn, YH)" وأضف مجموعة البيانات yhsg، كما هو موضح في الشكل 7-33.
الشكل 7-33 أدخل مجموعة البيانات yhsg
(3) قم بربط الحقول ذات الصلة ضمن مجموعة البيانات yhsg بمربع النص المقابل. تظهر النتيجة في الشكل 7-34.
الشكل 7-34 ربط النص الديناميكي بمربع النص ذي الصلة
(4) أضف سلوك خادم سجل التحديث، وقم بتعيين مؤقتًا: "YHID" و"YHNAME" كـ "عدد صحيح" لتحديد السجلات، وتظهر النتيجة في الشكل 7-35.
الشكل 7-35 إضافة سلوك خادم سجل التحديث
(5) في الكود الأصلي لسجل التحديث، ابحث عن الكود:
<Parameter Name="@YHID" Value='<%# IIf((Request.Form("YHNAME") < > لا شيء)، Request.Form("YHNAME"), "") %>' Type="Integer" />
قم بتغييره إلى:
<Parameter Name="@YHID" Value='<%# IIf((Not Session( "USEID") ليس شيئًا)، Session("USEID"), "") %>' Type="Integer" />
(6) احفظ yhsg.aspx.