แก้ไขครั้งสุดท้ายโดย ปุ๊ซัง เมื่อ 2012-8-9 02:02
รู้จักกับ User Control 
ในการสร้างเว็บไซต์ขึ้นมา เราสามารถใช้คอนโทรลพื้นฐานที่มีมาให้แล้วในทูลบ็อกส์ได้ แต่ในบ้างครั้งเราอาจไม่พอเพียงสำหรับงานที่ซับซ้อน เราสามารถสร้างคอนโทรลของเราขึ้นมาเองได้ หรือในบางครั้ง เพื่อให้ได้ตามความต้องการ ก็ต้องเขียนโปรแกรมในเว็บฟอร์มที่ซับซ้อนมาก เพื่อตอบสนองความต้องการนี้ หากเรามองเห็นว่าหลายๆ เว็บฟอร์ม มีการใช้กลุ่มคอนโทรลในลักษณะที่เหมือนๆ กัน เราสามารถนำกลุ่มคอนโทรลที่เหมือนๆ กันนี้ ไปสร้างเป็นคอนโทรลตัวใหม่ขึ้นมา 1 ตัว แล้วทำการแชร์ให้กับเว็บฟอร์มที่ต้องการแทน วิธีการนี้ทำให้เราเขียนโค้ดในเว็บฟอร์มสั้นลงได้มาก และเมื่อมีการสร้างเว็บฟอร์มใหม่ที่ต้องการคอนโทรลนี้อีก เราก็สามารถนำคอนโทรลตัวใหม่นี้มาใช้ได้ หรือเป็นการเพิ่ม Reusability อีกแบบหนึ่ง
ในบริษัทซอร์ฟแวร์ขนาดกลาง ไปถึงขนาดใหญ่ นิยมสร้างคอนโทรลเฉพาะของตัวเองขึ้นมา เพราะประหยัดเวลาในการเขียนโปรแกรมได้มาก ลดจำนวนโค้ดที่เขียน ลดโอกาสผิดพลาดที่จะเกิดกับเว็บฟอร์มที่ซับซ้อน และ ปัญหาในการควบคุมมาตรฐานของการเขียนโปรแกรมเมอร์ลดลง บ่อยครั้งที่เราเห็นบริษัทซอร์ฟแวร์ซื้อคอนโทรลจากบริษัท Third Party เช่น Infragistic Dundas ChartFX ComponentOne หรือ Exceed มาใช้งาน
เราจะกล่าวถึงการสร้างคอนโทรลขึ้นมาใช้งานเอง ซึ่งมีอยู่ 2 ประเภทคือ
User Control
เป็นคอนโทรลที่เกิดจาก คอนโทรลพื้นฐานได้หลายๆ ตัว ในตอนสร้าง เราสามารถลากคอนโทรลจากทูลบ๊อกส์มาวางได้เหมือนกับเว็บฟอร์ม เราสามารถจัดตำแหน่ง และคุณสมบัติได้จากหน้าจอออกแบบของ Visual Studio เลย นอกจากนี้เราสามารถเขียนโปรแกรมใน Code Behind ได้เหมือนกับเว็บฟอร์ม และเป็นการเขียนโปรแกรมในลักษณะ Event Procedure ก็เช่นเดียวกัน
Custom Server Control
เป็นคอนโทรลที่ไม่มีหน้าออกแบบให้ ทำให้เราต้องเขียนโปรแกรมเพื่อจัดวาง และกำหนดคุณสมบัติต่างๆ เอง ข้อดีของคอนโทรลประเภทนี้คือสามารถคอมไพล์กับคีย์ไฟล์ แล้วลงทะเบียนกับ GAC (Global Assembly Cache) เพื่อทำให้คอนโทรลของเราใช้งานได้กับหลายๆ .NET แอพพลิเคชั่น ในการสร้างคอนโทรล Third Party เพื่อขาย ก็จะสร้างคอนโทรลประเภทนี้
รู้จักกับ User Control User Control เป็นคอนโทรลที่ประกอบด้วยคอนโทรลพื้นฐานที่มีในทูลบ็อกซ์หลายๆ ตัวได้ นอกจากนี้พฤติกรรมของมันยังเหมือนกับเว็บฟอร์มมาก คือมีหน้าจอในการออกแบบทั้งมุมมอง Design และมุมมอง Source เหมือนกัน เราสามารถลากคอนโทรลหลายๆ ตัวจากทูลบ็อกซ์มาวางที่มุมมอง Design ได้ นอกจากนี้มันมี Event ในตัวมันเองได้เช่น Page_Load และ Page_Init และสามารถเรียกใช้อ็อปเจ็กต์ของเว็บไซต์ได้เช่น Session และ Application อาจจะบอกได้ว่าเว็บฟอร์ทำอะไรได้ User Control นี้ก็ทำได้แทบไม่ต่างกัน แต่เรามักใช้ User Control เพื่อจุดประสงค์ในการเพิ่ม Reusability ให้กับเว็บไซต์ของเราดังภาพ
การใช้งาน User Control กับเว็บฟอร์ม
จากภาพ จะเห็นว่า User Control หนึ่งตัวสามารถนำไปใช้กับเว็บฟอร์มหลายๆ ตัวได้ ถ้าหากเราในตอนที่เราออกแบบเว็บฟอร์ม แล้วเรามองเห็นว่าหลายๆ เว็บฟอร์มีส่วนของหน้าจอที่เหมือนกัน เราสามารถส่วนที่เหมือนกันนี้มาสร้างเป็น User Control ได้ User Control สามารถมี Event หลายๆ อย่างเกิดในตัวมันเองได้ ซึ่งปกติแล้ว เหตุการณ์ในคอนโทรลจะไม่สามารถส่งผ่านไปยังเว็บฟอร์ม หรือคอนโทรลตัวอื่นได้ ยกเว้นว่าเราจะตั้งใจส่งเหตุการณ์ออกไปให้เว็บฟอร์มรับรู้ ซึ่งจะได้พูดถึงในส่วนถัดไป นอกจากนี้มันยังสามารถมีอินเตอร์เฟส เช่น พร็อพเพอตี้ และเมธอดในตัวมันเองเพื่อให้สามารถติดต่อกับเว็บฟอร์ม หรือคอนโทรลตัวอื่นได้ดังภาพ
เหตุกาณ์ที่เกิดขึ้นในตัว User Control และอินเตอร์เฟสของ User Control
|