เมื่อใช้ asp.net เหตุการณ์ฝั่งเซิร์ฟเวอร์จะถูกทริกเกอร์โดยอัตโนมัติเมื่อมีการรีเฟรชเพจ ยกตัวอย่างง่ายๆ เช่น หน้าลงทะเบียน หลังจากที่เรากรอกข้อมูลการลงทะเบียนแล้ว หากเรากด F5 เพื่อรีเฟรช เหตุการณ์ของปุ่มจะถูกทริกเกอร์โดยอัตโนมัติ ซึ่งจะทำให้เกิดปัญหาในการลงทะเบียนอีกครั้ง
วิธีแก้ไขปัญหาก่อนหน้าของฉัน: ค้นหาด้วยคำหลัก และหากมีความคล้ายคลึงกัน ระบบจะแจ้งว่ามีผู้ใช้รายนี้อยู่แล้ว
แต่โซลูชันนี้ไม่สามารถใช้งานได้โดยไม่ได้รับการยอมรับ และเขาจะส่งอีกครั้ง ด้วยเหตุนี้ ฉันจึงมองหาวิธีแก้ปัญหาใหม่ โชคดีด้วยคำแนะนำของเพื่อน ฉันจึงได้วิธีแก้ปัญหาดังกล่าวขึ้นมา และฉันจะไม่ลังเลที่จะให้คำแนะนำแก่คุณ
วิธีแก้ไข: เมื่อรีเฟรช ให้จับ KeyPress และปล่อยให้มันทริกเกอร์เหตุการณ์ที่ไม่มีประโยชน์อื่นๆ
1. JavaScript เพื่อจับภาพเหตุการณ์ F5
window.document.onkeydown = KeyStroke;
ฟังก์ชัน KeyStroke()
-
คีย์ var = event.keyCode;
เหตุการณ์ srcElement.releaseCapture();
ถ้า (คีย์ == 116)
-
document.getElementById("Button1").คลิก();
เหตุการณ์ keyCode=0;
event.returnValue=false;
-
}
2. วางปุ่มบนหน้า aspx
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 344px; POSITION: Absolute; TOP: 408px; WIDTH: 0px;" runat="server"
Text="Button"></asp:Button>
3. เหตุการณ์ปุ่ม
โมฆะส่วนตัว Button1_Click (ผู้ส่งวัตถุ System.EventArgs e)
-
Response.Write( "คุณได้กดปุ่ม F5");
}
วิธีแก้ปัญหา "บันทึกรถเพื่อรักษาความหล่อ" นี้สามารถแก้ปัญหาเล็กๆ น้อยๆ ของการเรียกใช้เหตุการณ์โดยอัตโนมัติเพื่อรีเฟรชได้ หากใครมีวิธีแก้ปัญหาที่ดีกว่า โปรดแจ้งให้เราทราบ ฉันจะขอบคุณมาก!