บทที่ 10 การใช้ปฏิทินกิจกรรม BLOG
เนื่องจาก BLOG ของ 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 Calendar" ใต้ "แท็ก ASP.NET" ในกล่องโต้ตอบป๊อปอัป [Tag Selector] ดังแสดงในรูปที่ 10-2 .
รูปที่ 10-2 ใส่แท็ก "asp Calendar"
(4) กดปุ่ม "Insert" และกล่องโต้ตอบ [Tag Editor—Calendar] จะปรากฏขึ้น ดังแสดงในรูปที่ 10-3 ในกล่องโต้ตอบนี้ คุณสามารถตั้งค่ารูปแบบของตัวควบคุมปฏิทินปฏิทินได้ เนื่องจากเป็นภาษาจีน ฉันจะไม่ลงรายละเอียดที่นี่
(5) บันทึกหน้าไดนามิก ASP.NET VB เป็น dkCalendar.aspx เรียกดูใน IE ดังแสดงในรูปที่ 10-4
รูปที่ 10-3 กล่องโต้ตอบ [Tag Editor—Calendar]
รูปที่ 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 อีกครั้ง การร้อยด้าย ผลลัพธ์จะแสดงในรูปที่ 10-6
รูปที่ 10-5 การแทรกเนมสเปซ
รูปที่ 10-6 โค้ดหลังจากใส่เนมสเปซ
(5) หลังโค้ด:
<%@ Import Namespace="System.Treading" %>
เว้นบรรทัดว่างแล้วใส่โค้ดต่อไปนี้:
<script runat="server">
Dim dkday ' คำจำกัดความ ตัวแปรส่วนกลางของสตริงลิงก์ที่สร้างขึ้นโดยการเลือกวันที่
'ฟังก์ชันเพื่อเปลี่ยนการแสดงสัปดาห์ ปฏิทิน
ย่อยส่วนตัว1_PreRender(ผู้ส่ง ByVal 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 สลับไปที่แท็บ [Properties] ของแผง [Label] ให้ขยายตัวเลือก "ลักษณะที่ปรากฏ" เลือกเมนูแบบเลื่อนลงของรายการ "DayNameFormat" และเลือก "เต็ม" ดังแสดงในรูปที่ 10-7
(7) บันทึก dkCalendar.aspx และเรียกดูใน IE ผลลัพธ์จะแสดงในรูปที่ 10-8
รูปที่ 10-7 เลือกค่า "DayNameFormat" เป็น "Full" รูปที่ 10-8เพิ่มกิจกรรมในปฏิทิน
ใน IE 10.3 หลังจากแก้ไข dkCalendar.aspx
(1) เปิด dkCalendar.aspx ใน Dreamweaver สลับไปที่มุมมองโค้ด และเลือกโค้ดต้นฉบับของ Calendar1 คลิกขวาแล้วเลือก "แก้ไขป้ายกำกับ (E) <asp:calendar>" ในเมนูทางลัดป๊อปอัป ดังแสดงในรูปที่ 10-9
รูปที่ 10-9 เลือก "Edit Label (E) <asp:calendar>"
(2) ในกล่องโต้ตอบที่ปรากฏขึ้น [Edit Label—calendar] ให้ขยายรายการ "Events" เลือก "OnSelectionChanged" และคลิก "Calendar" —OnSelectionChanged" ในพื้นที่ข้อความเหตุการณ์ ให้ป้อน "Calendar1_SelectionChanged" แล้วกดปุ่ม "OK" ดังแสดงในรูปที่ 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 เป็น "เต็ม" อีกครั้ง โปรดดูขั้นตอนที่ 6 ในส่วน 10.2
(7) บันทึก dkCalendar.aspx เปิด index.aspx และเพิ่มโค้ดต่อไปนี้ในฟังก์ชัน page_load:
ถ้า Request.QueryString("dkday")<>nothing แล้ว
Ztre.CommandText="SELECT * FROM ZTRE WHERE cstr(ZITIME) LIKE ' %" &Request.QueryString("dkday")&"%' ORDER BY ZITIME DESC"
else
if (request.QueryString("menanw")<>nothing) หรือ (session("menanw")<>nothing) แล้ว
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 และลบบรรทัดคำสั่งที่มี CommandText อยู่ ผลลัพธ์จะแสดงในวงกลมสีแดงในรูปที่ 10-15
รูปที่ 10-15 รหัสต้นฉบับ (9) ของชุดระเบียนที่แก้ไข Ztre
จะบันทึก index.aspx
10.4 เพิ่มเฟรมที่ฝังไว้
(1) เปิดเทมเพลต dkblog.dwt.aspx คลิกปุ่มทางลัด "แท็กเพิ่มเติม" ในเมนูทางลัด ASP.NET และเลือก "แท็ก HTML" ในกล่องโต้ตอบ [ตัวเลือกแท็ก] ที่ปรากฏขึ้น และเลือกรายการ "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
คำเตือน: ที่จริงแล้ว การใช้งานกิจกรรมในปฏิทินนั้นเป็นกิจกรรมที่ซับซ้อนมาก นี่เป็นเพียงตัวอย่างง่ายๆ ปัญหาอีกประการในส่วนนี้คือการควบคุมออบเจ็กต์หน้าต่างหลักโดยเฟรมเวิร์กแบบฝัง ที่นี่เราใช้เพียง " parent.location.href " เพื่อควบคุมการไหลของหน้าเว็บหน้าต่างหลัก ที่เหลือให้ผู้อ่านศึกษาอย่างช้าๆ