บทนำ

ModalPopupExtender ของ ASP.NET AJAX เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างป๊อปอัพแบบโมดัลในแอปพลิเคชันเว็บ อย่างไรก็ตาม ความท้าทายทั่วไปที่นักพัฒนาต้องเผชิญคือความจำเป็นในการเรียกใช้ฟังก์ชัน JavaScript เฉพาะเมื่อมีการแสดงโมดัล เป็นที่น่าเสียดายที่ ModalPopupExtender ไม่มีคุณสมบัติ OnShowScript ซึ่งอาจทำให้เกิดความหงุดหงิด

ในโพสต์บล็อกนี้ เราจะสำรวจวิธีการทำงานรอบข้อจำกัดนี้และทำให้แน่ใจว่า JavaScript ที่ต้องการทำงานอย่างราบรื่นเมื่อโมดัลถูกแสดง

ปัญหา

คุณอาจต้องการเรียกใช้ฟังก์ชัน JavaScript เฉพาะเมื่อป๊อปอัพโมดัลของคุณปรากฏขึ้น สถานการณ์ทั่วไปคือเมื่อรวมฟีเจอร์ต่างๆ เช่น TinyMCE editor ในกล่องข้อความที่อยู่ภายในโมดัล TinyMCE ต้องการให้กล่องข้อความมองเห็นได้เพื่อให้ทำงานได้อย่างถูกต้อง ซึ่งหมายความว่าคุณต้องมีวิธีในการเรียกใช้สคริปต์การเริ่มต้นในช่วงเวลาที่เหมาะสม

โซลูชัน

เพื่อเรียกใช้ JavaScript ทุกครั้งที่โมดัลของคุณปรากฏ คุณสามารถใช้เหตุการณ์ shown ที่ ModalPopupExtender จัดให้ วิธีนี้ช่วยให้การรวมเข้ากันได้อย่างสะอาดโดยไม่ต้องพึ่งพาควบคุมที่ไม่จำเป็นหรือการทำงานรอบที่ยุ่งยาก

การดำเนินการตามโซลูชัน

นี่คือวิธีการตั้งค่า:

  1. เพิ่ม JavaScript ลงในหน้า: คุณจะต้องแนบฟังก์ชัน JavaScript ของคุณกับเหตุการณ์ shown ของป๊อปอัพโมดัล โดยทั่วไปสามารถทำได้ในฟังก์ชัน pageLoad

  2. ตัวอย่างโค้ด: ด้านล่างนี้เป็นตัวอย่างโค้ดที่จะสาธิตวิธีการนี้:

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 กับป๊อปอัพโมดัลไม่เคยง่ายขนาดนี้มาก่อน ขอให้สนุกกับการเขียนโค้ด!