เชื่อว่าหลายคนคงเจอปัญหานะครับ กับ การที่ user คลิ๊กปุ่มเดิมซ้ำๆ ในกรณี ที่คลิ๊กแล้ว page ไม่โหลดซะที

พอโหลดแล้วปรากฏว่า ข้อมูลขึ้นมาเต็มไปหมด (ในกรณีที่ เป็นการ save ข้อมูลใหม่นะครับ)

สำหรับ .NET 2.0 นะครับ ถ้า 1.1 ให้ ตัด “ClientScript” ออกครับ

Public Sub ClickOnceButton(ByRef page As Page, ByRef b As Button)Dim oneClickScript As System.Text.StringBuilder = New System.Text.StringBuilder()oneClickScript.Append(

“if (typeof(Page_ClientValidate) == ‘function’) { “)oneClickScript.Append(“if (Page_ClientValidate() == false) { return false; }} “)oneClickScript.Append(

“this.value = ‘Please wait…’;”)oneClickScript.Append(“this.disabled = true;”)oneClickScript.Append(page.ClientScript.GetPostBackEventReference(b,

“”))oneClickScript.Append(“;”)b.Attributes.Add(

“onclick”, oneClickScript.ToString())End Sub

ถามว่าใช้ .net 2.0 มี onClientClick ไม่ใช่เหรอ ทำไมไม่ใช้  ก็ใช้ได้ครับ ในกรณีที่ คุณไม่ได้ assign property onClientClick ไว้ที่ ปุ่ม

แต่ถ้าหา assign ค่าไว้ ค่าที่ assign ไว้จะถูกเขียนทับครับ

วิธีการใช้นะครับ

 ClickOnceButton(Me.Page, Me.btnSave)

เท่านี้ เวลา ที่ use click ปุ่ม จะสามารถกดได้ครั้งเดียว เมื่อกดไปแล้วปุ่มจะถูก disable ไว้เหมือน ปุ่ม “ส่งข้อความใหม่” ของเวปบอร์ดแห่งนี้หล่ะครับ

 ขอบคุณครับ

ที่มา: http://www.greatfriends.biz/webboards/msg.asp?id=41339