แม้ว่าการควบคุมเว็บและการควบคุม Html จะมีฟังก์ชันที่คล้ายกันมากมายและมีลักษณะคล้ายกัน แต่กลไกการใช้งานภายในนั้นแตกต่างอย่างสิ้นเชิง
การควบคุมเว็บทำงานได้ดีกว่าการควบคุม Html
1 นอกจากนี้ยังค่อนข้างสะดวกในการใช้งาน ต่อไปนี้เป็นตัวอย่างง่ายๆ เช่น การสร้างปุ่ม:
คอนโทรล Html ใส่ชุดคอนโทรลขนาดใหญ่ทั้งหมดลงในเพจ ซึ่งใช้ฟังก์ชันใด เพียงตั้งค่าคุณสมบัติดังนี้:
<ประเภทอินพุต=ส่ง/ปุ่ม runat=เซิร์ฟเวอร์>
สิ่งนี้จะใช้ทรัพยากรการควบคุมจำนวนมาก
ซึ่งรวมอยู่ในฟังก์ชันเดียว:
<asp:button id="btnOK" />
ซึ่งสามารถประหยัดทรัพยากรที่ถูกครอบครองโดยการควบคุมที่ไม่จำเป็น
2. การควบคุมเว็บมีฟังก์ชันการเรียกกลับและสามารถใช้ ViewState เพื่อรักษาสถานะของการควบคุมได้
ตัวควบคุม Html ไม่สามารถทำได้ เมื่อคลิกการดำเนินการเพจ สถานะของมันจะสูญหายไป
คุณสามารถทำการทดลองได้ดังนี้:
I. สร้างไฟล์สองไฟล์ตามลำดับ: a.html b.aspx
II. เพิ่ม RadioButton ของตัวควบคุม Html และปุ่มไปที่หน้า a.html
เพิ่มการRadioButtonของตัวควบคุมเว็บและปุ่มในb.aspx
III.a.html ทำงานโดยตรงโดยการดับเบิลคลิกที่เบราว์เซอร์ และ b.aspx ทำงานผ่าน IIS
IV. ในอินเทอร์เฟซที่ทำงานอยู่ a.html ให้เลือก RadioButton จากนั้นคลิกปุ่ม Button
ยกเลิกการเลือก (สูญเสียสถานะ) แต่ดำเนินการเดียวกันบนหน้า b.aspx RadioButton จะไม่สูญหายเนื่องจาก ViewState
สถานะจะถูกบันทึกไว้ คุณสามารถคลิก "ดู" -> "ไฟล์ต้นฉบับ" บนเมนูเบราว์เซอร์ในอินเทอร์เฟซที่เรียกใช้เพื่อเปิดไฟล์โค้ด Html
ค้นหา ViewState ที่เข้ารหัส คล้ายกับตัวอย่างต่อไปนี้:
<ประเภทอินพุต = "ซ่อน" ชื่อ = "_VIEWSTATE" ค่า = "dDw0ajfmafmjfzzmj4"/>
ในความเป็นจริง หลักการใช้งาน ViewState คือการใส่ข้อมูลบางอย่างลงในการควบคุมที่ซ่อนอยู่ และข้อมูล ViewState ที่สร้างโดย asp.net
จะถูกจัดเก็บไว้ในไคลเอนต์
สิ่งหนึ่งที่ควรทราบที่นี่คือ:
สามารถเปิดฟังก์ชันย้อนกลับได้เฉพาะเมื่อรูปแบบเป็นไฟล์ *.aspx และตัวควบคุมมีแอตทริบิวต์: "runat=server"
3. ความแตกต่างที่ใหญ่ที่สุดระหว่างการควบคุม Html และการควบคุมเว็บคือวิธีการประมวลผลเหตุการณ์ที่แตกต่างกัน สำหรับการควบคุมฟอร์ม Html
เมื่อมีเหตุการณ์เกิดขึ้น เบราว์เซอร์จะจัดการเหตุการณ์นั้น แต่สำหรับการควบคุมเว็บ เหตุการณ์จะถูกสร้างขึ้นโดยเบราว์เซอร์เท่านั้น แต่เบราว์เซอร์จะไม่ประมวลผลมัน ไคลเอนต์จำเป็นต้องส่งข้อความไปยังเซิร์ฟเวอร์เพื่อแจ้งให้เซิร์ฟเวอร์จัดการเหตุการณ์ อย่างไรก็ตามเหตุการณ์บางอย่าง
ตัวอย่างเช่น:
เหตุการณ์ต่างๆ เช่น การกดปุ่ม/ย้าย/เมาส์ ฯลฯ เหตุการณ์เหล่านี้ไม่มีอยู่ใน Asp.net
(เนื่องจากเหตุการณ์เหล่านี้มีความเร่งด่วนสูง เซิร์ฟเวอร์จึงไม่สามารถประมวลผลได้ทันทีเพียงพอ) ในขณะนี้ ตัวควบคุม Html เข้ามามีบทบาท รวมกับเหตุการณ์ Html
เพื่อช่วยดำเนินการให้เสร็จสิ้น
ต่อไปนี้เป็นเหตุการณ์ที่ใช้กันทั่วไปใน Html:
เหตุการณ์การควบคุม Html ดำเนินการบนเบราว์เซอร์:
ทริกเกอร์เมื่อคลิก:
<INPUT type="button" value="Click Me" onclick="alert('Hi, Hello!');">
ทริกเกอร์เมื่อเมาส์กระดอน:
<INPUT type="button" value="Click Me" onmouseup="alert('Hi, Hello!');">
//ทริกเกอร์เมื่อโฮเวอร์เหนือตัวควบคุม
<INPUT type="button" value="Click Me" onmouseover="alert('Hi, Hello!');">
//ทริกเกอร์เมื่อเมาส์เคลื่อนอยู่เหนือส่วนควบคุม
<INPUT type="button" value="Click Me" onmousemove="alert('Hi, Hello!');">
//ทริกเกอร์เมื่อมีการดับเบิลคลิกตัวควบคุม
<INPUT type="button" value="Click Me" ondblclick="alert('Hi, Hello!');">
//เมื่อโฟกัสอยู่ที่ส่วนควบคุม มันจะทริกเกอร์เมื่อกดปุ่ม
<INPUT type="button" value="Click Me" onkeypress="alert('Hi, Hello!');">
//ทริกเกอร์เมื่อกดปุ่ม
<INPUT type="button" value="คลิกฉัน" onkeydown="alert('สวัสดี สวัสดี!');">