الفصل العاشر: تنفيذ تقويم أحداث المدونة
نظرًا لأن مدونة Doking عبارة عن مذكرة دراسية، فيمكنك التحقق من جميع الملاحظات واستجابات الملاحظات بالضغط على التقويم.
تحليل الصعوبة: هل يجب أن نضيف عنصر تحكم تقويم التقويم مباشرة إلى القالب؟ لا! هذا لن ينجح! نظرًا لأن عنصر تحكم تقويم التقويم هو عنصر تحكم في الخادم، فيجب أن يكون في نموذج يحتوي على runat='server'، ومع ذلك، لا يمكن أن يكون هناك سوى نموذج واحد يحتوي على runat='server' على الصفحة، وإلا فسيظهر الخطأ في الشكل 10-1. سوف تحدث في بعض الأحيان.
الشكل 10-1 ماذا علي أن أفعل إذا كانت الصفحة تحتوي على خطأ واحد فقط يحتوي على نموذج runat="server"
؟ هنا إطار مضمن للنقل.
10.1 إضافة عنصر تحكم تقويم التقويم
(1) قم بإنشاء صفحة ديناميكية ASP.NET VB فارغة جديدة.
(2) أدخل وأخرج نموذج runat = "server" وقم بتعيين ID = "Calfrm".
(3) انقر فوق الزر "مزيد من العلامات" ضمن القائمة المختصرة لـ ASP.NET، وحدد "تقويم asp" ضمن "علامات ASP.NET" في مربع الحوار [محدد العلامات] المنبثق، كما هو موضح في الشكل 10-2 .
الشكل 10-2 أدخل علامة "asp Calendar"
(4) اضغط على الزر "إدراج"، وسينبثق مربع الحوار [Tag Editor—Calendar]، كما هو موضح في الشكل 10-3. في هذا الحوار، يمكنك ضبط نمط التحكم في تقويم التقويم نظرًا لأنه باللغة الصينية، فلن أخوض في التفاصيل هنا.
(5) احفظ صفحة ASP.NET VB الديناميكية باسم dkCalendar.aspx. تصفح في IE، كما هو موضح في الشكل 10-4.
الشكل 10-3 مربع الحوار [محرر العلامات — التقويم].
الشكل 10-4 تصفح dkCalendar.aspx في IE
في الشكل 10-1-4، يمكنك أن ترى أن عرض الأسبوع طويل جدًا وقبيح! سيكون جميلاً لو كان نصه "يوم، واحد، اثنان، ثلاثة، أربعة، خمسة، ستة".
10.2 قم بتعديل عرض الأسبوع للتقويم
(1) افتح dkCalendar.aspx في Dreamweaver، وقم بالتبديل إلى طريقة عرض التعليمات البرمجية، وابحث عن التعليمات البرمجية التالية:
<
%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" " %>
قم بتغييره إلى:
<%@ Page Language="VB" Debug="true" Culture="zh-CN"%>
(2) انقر فوق الزر "а:xy" ضمن القائمة المختصرة لـ ASP.NET وأدخله مساحة الاسم، كما هو موضح في الشكل 10-5.
(3) أضف رمزًا جديدًا في هذا الوقت:
<%@ Import Namespace="" %>
مساحة اسم الإدخال هي System.Globalization، أي أنه تم تغيير الرمز إلى:
<%@ Import Namespace="System.Globalization" %>
(4) قم بإضافة Namespace System.Threading مرة أخرى، وتظهر النتيجة في الشكل 10-6.
الشكل 10-5 إدراج مساحة الاسم
الشكل 10-6 الكود بعد إدخال مساحة الاسم
(5) بعد الكود:
<%@ Import Namespace="System.Treading" %>
، اترك سطرًا فارغًا وأدخل الكود التالي:
<script runat="server">
Dim dkday تعريف المتغير العام لسلسلة الارتباط التي تم إنشاؤها عن طريق تحديد
وظيفة التاريخ لتغيير عرض الأسبوع
Private Sub Calendar1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) يعالج Calendar1.PreRender
Dim dkwek = System.Threading.Thread. CurrentThread
Dim dknew = System.Globalization.CultureInfo.CurrentCulture.Clone()
dknew.DateTimeFormat.DayNames = New String() {"Day"، "一"، "二"، "三"، "四"، "五"، "六"}
dknew.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Sunday
dkwek.CurrentCulture = dknew
End Sub
</script>
(6) حدد الرمز الأصلي لعنصر تحكم التقويم Calendar1، وقم بالتبديل إلى علامة التبويب [خصائص] في لوحة [التسمية] ، قم بتوسيع خيار "المظهر"، وحدد القائمة المنسدلة لعنصر "DayNameFormat" وحدد "Full"، كما هو موضح في الشكل 10-7.
(7) احفظ dkCalendar.aspx وتصفحه في IE، وتظهر النتيجة في الشكل 10-8.
الشكل 10-7 حدد قيمة "DayNameFormat" على أنها "كاملة" الشكل 10-8أضف أحداث التقويم
في IE 10.3 بعد تعديل dkCalendar.aspx
(1) افتح dkCalendar.aspx في Dreamweaver، وانتقل إلى عرض التعليمات البرمجية، وحدد الكود الأصلي لـ Calendar1، انقر بزر الماوس الأيمن فوقه وحدد "تحرير التسمية (E) <asp:calendar>" في القائمة المختصرة المنبثقة، كما هو موضح في الشكل 10-9.
الشكل 10-9 حدد "تحرير التسمية (E) <asp:calendar>"
(2) في مربع الحوار المنبثق [Edit Label—calendar]، قم بتوسيع عنصر "الأحداث"، وحدد "OnSelectionChanged"، وانقر فوق "التقويم" —OnSelectionChanged" في منطقة نص الحدث، أدخل "Calendar1_SelectionChanged" واضغط على الزر "موافق"، كما هو موضح في الشكل 10-10.
الشكل 10-10 تحرير حدث OnSelectionChanged
(3) أضف الكود الموضح في الدائرة الحمراء في الشكل 10-11 في علامة الكود <script runat="server">.
الشكل 10-11 إضافة حدث Calendar1_SelectionChanged
(4) بين العلامات <head></head>، أدخل الكود الموضح في الدائرة الحمراء في الشكل 10-12.
(5) ابحث عن العلامة <body> وقم بتغييرها إلى الرمز الموضح في الدائرة الحمراء في الشكل 10-13.
الشكل 10-12: إدخال وظيفة جافا سكريبت dkwk
الشكل 10-13 تعديل العلامة <body>
(6) قم بتعيين عنصر "DayNameFormat" في Calendar1 على "Full" مرة أخرى، راجع الخطوة 6 في القسم 10.2.
(7) احفظ dkCalendar.aspx، وافتح ملف Index.aspx، وأضف التعليمة البرمجية التالية في وظيفة page_load:
إذا لم يكن Request.QueryString("dkday")<>لا شيء، ثم
Ztre.CommandText="SELECT * FROM ZTRE WHERE cstr(ZITIME) LIKE ' %" &Request.QueryString("dkday")&"%' ORDER BY ZITIME DESC"
وإلا
إذا (request.QueryString("menanw")<>لا شيء) أو (session("menanw")<>لا شيء) ثم
Ztre .CommandText ="SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC"
else
Ztre.CommandText="SELECT * FROM ZTRE ORDER BY ZITIME DESC"
ينتهي
إذا
كانت النتيجة موضحة في الشكل 10-14.
الشكل 10-14 قم بإضافة الكود (8) في وظيفة page_load
للعثور على الكود الأصلي لمجموعة السجلات Ztre وحذف سطر الأوامر حيث يوجد نص الأوامر الخاص بها، وتظهر النتيجة في الدائرة الحمراء في الشكل 10-15.
الشكل 10-15 الكود الأصلي (9) لمجموعة السجلات المعدلة Ztre
يحفظ ملف Index.aspx.
10.4 إضافة إطار مضمن
(1) افتح القالب dkblog.dwt.aspx، وانقر فوق زر الاختصار "المزيد من العلامات" في قائمة اختصارات ASP.NET، وحدد "علامات HTML" في مربع الحوار [Tag Selector] الذي ينبثق وحدد عنصر "iframe"، كما هو موضح في الشكل 10-16.
الشكل 10-16 أدخل علامة iframe (أي إطار مضمن)
(2) انقر فوق الزر "إدراج"، وفي مربع الحوار [Tag Editor—iframe] المنبثق، قم بتعيين الإعدادات ذات الصلة للإطار المضمن المراد إدراجه، كما هو موضح في الشكل 10-17 المبين.
الشكل 10-17 قم بإجراء الإعدادات ذات الصلة للإطار المضمن
(3) اضغط على الزر "موافق" للعودة إلى مربع الحوار [Tag Editor—iframe]، ثم اضغط على الزر "إغلاق".
(4) احفظ القالب dkblog.dwt.aspx وقم بتحديث كافة صفحات الويب.
(5) تصفح ملف Index.aspx في IE، وتظهر النتيجة في الشكل 10-18.
الشكل 10-18 استعراض ملف Index.aspx في IE
Reminder: في الواقع، يعد تنفيذ أحداث التقويم حدثًا معقدًا للغاية، وهذا مجرد مثال بسيط. هناك صعوبة أخرى في هذا القسم وهي التحكم في كائن النافذة الرئيسية من خلال الإطار المضمن. هنا نستخدم فقط " parent.location.href " للتحكم في تدفق صفحة الويب الخاصة بالنافذة الرئيسية. وتُترك هذه للقراء ليدرسوها ببطء.