บทนำ
ModalPopupExtender
ของ ASP.NET AJAX เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างป๊อปอัพแบบโมดัลในแอปพลิเคชันเว็บ อย่างไรก็ตาม ความท้าทายทั่วไปที่นักพัฒนาต้องเผชิญคือความจำเป็นในการเรียกใช้ฟังก์ชัน JavaScript เฉพาะเมื่อมีการแสดงโมดัล เป็นที่น่าเสียดายที่ ModalPopupExtender
ไม่มีคุณสมบัติ OnShowScript
ซึ่งอาจทำให้เกิดความหงุดหงิด
ในโพสต์บล็อกนี้ เราจะสำรวจวิธีการทำงานรอบข้อจำกัดนี้และทำให้แน่ใจว่า JavaScript ที่ต้องการทำงานอย่างราบรื่นเมื่อโมดัลถูกแสดง
ปัญหา
คุณอาจต้องการเรียกใช้ฟังก์ชัน JavaScript เฉพาะเมื่อป๊อปอัพโมดัลของคุณปรากฏขึ้น สถานการณ์ทั่วไปคือเมื่อรวมฟีเจอร์ต่างๆ เช่น TinyMCE editor ในกล่องข้อความที่อยู่ภายในโมดัล TinyMCE ต้องการให้กล่องข้อความมองเห็นได้เพื่อให้ทำงานได้อย่างถูกต้อง ซึ่งหมายความว่าคุณต้องมีวิธีในการเรียกใช้สคริปต์การเริ่มต้นในช่วงเวลาที่เหมาะสม
โซลูชัน
เพื่อเรียกใช้ JavaScript ทุกครั้งที่โมดัลของคุณปรากฏ คุณสามารถใช้เหตุการณ์ shown
ที่ ModalPopupExtender
จัดให้ วิธีนี้ช่วยให้การรวมเข้ากันได้อย่างสะอาดโดยไม่ต้องพึ่งพาควบคุมที่ไม่จำเป็นหรือการทำงานรอบที่ยุ่งยาก
การดำเนินการตามโซลูชัน
นี่คือวิธีการตั้งค่า:
-
เพิ่ม JavaScript ลงในหน้า: คุณจะต้องแนบฟังก์ชัน JavaScript ของคุณกับเหตุการณ์
shown
ของป๊อปอัพโมดัล โดยทั่วไปสามารถทำได้ในฟังก์ชันpageLoad
-
ตัวอย่างโค้ด: ด้านล่างนี้เป็นตัวอย่างโค้ดที่จะสาธิตวิธีการนี้:
function pageLoad() {
var popup = $find('ModalPopupClientID');
popup.add_shown(SetFocus);
}
function SetFocus() {
// เปลี่ยน 'TriggerClientId' เป็น ID ของกล่องข้อความจริง
$get('TriggerClientId').focus();
}
การวิเคราะห์โค้ด
-
ฟังก์ชัน
pageLoad
: ฟังก์ชันนี้ทำงานเมื่อหน้าของคุณถูกโหลด มันใช้$find
เพื่อรับการอ้างอิงถึงModalPopupExtender
โดยใช้ ID ของลูกค้า (ModalPopupClientID
เป็นตัวแทนและควรแทนที่ด้วย ID จริง) -
การเพิ่มเหตุการณ์
shown
: เมธอดadd_shown
ถูกใช้เพื่อแนบฟังก์ชันSetFocus
เข้ากับเหตุการณ์shown
ซึ่งหมายความว่าในแต่ละครั้งที่โมดัลถูกแสดง ฟังก์ชันSetFocus
จะทำงานโดยอัตโนมัติ -
ฟังก์ชัน
SetFocus
: ในฟังก์ชันนี้ เราเพียงแค่ตั้งค่าโฟกัสไปที่กล่องข้อความที่จะถูกเปลี่ยนเป็น TinyMCE editor การทำให้มันมองเห็น จะช่วยให้ TinyMCE เริ่มต้นได้อย่างถูกต้องโดยไม่มีปัญหา
สรุป
โดยการใช้เหตุการณ์ shown
ของ ModalPopupExtender
คุณสามารถรวมการเรียกใช้ JavaScript ที่จำเป็นสำหรับความต้องการของคุณได้อย่างราบรื่น เช่น การเริ่มต้น TinyMCE editors วิธีนี้ไม่เพียงช่วยทำให้โค้ดของคุณเรียบง่ายขึ้น แต่ยังทำให้มั่นใจว่าฟังก์ชัน JavaScript ของคุณทำงานในเวลาที่ถูกต้อง
หากคุณต้องเผชิญกับความต้องการที่คล้ายคลึงกันในแอปพลิเคชัน ASP.NET ของคุณ การรวม JavaScript กับป๊อปอัพโมดัลไม่เคยง่ายขนาดนี้มาก่อน ขอให้สนุกกับการเขียนโค้ด!