C#学习之按钮点击事件
描述:asp.net中服務(wù)器控件Button的點(diǎn)擊事件OnClientClick和OnClick的區(qū)別?
解答:http://www.cnblogs.com/ypfnet/archive/2012/12/24/2830771.html(作者:代號(hào)小子)
一、 ? 二者的區(qū)別:
OnClick是button的服務(wù)器端事件
OnClientClick是button屬性,它里面執(zhí)行的是js代碼,是在客戶端運(yùn)行。
一般我們用 OnClientClick驗(yàn)證我們的提交數(shù)據(jù),但是這個(gè)一定要返回ture或者false,即一定要加上return,否則在客戶端驗(yàn)證失效。如果是true那么就會(huì)執(zhí)行后臺(tái)的c#代碼,頁(yè)面也會(huì)進(jìn)行提交刷新;否則就不執(zhí)行,只會(huì)執(zhí)行客戶端js代碼。
前臺(tái)代碼:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test.WebForm1" %>2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">4 5 <html xmlns="http://www.w3.org/1999/xhtml">6 <head runat="server">7 <title></title>8 <script type="text/javascript">9 function clickBtn() { 10 // alert("被點(diǎn)擊了!"); 11 // return false; 12 13 var yesORNo = confirm("確定點(diǎn)擊?"); 14 if (yesORNo) { 15 return true;//如果用戶點(diǎn)擊“確定”,就返回true,開(kāi)始執(zhí)行后臺(tái)代碼! 16 } else { 17 return false; //如果用戶點(diǎn)擊“取消”,就返回false,不執(zhí)行后臺(tái)代碼! 18 } 19 } 20 </script> 21 </head> 22 <body> 23 <form id="form1" runat="server"> 24 <div> 25 <asp:Button runat="server" ID="btnok" Text="點(diǎn)擊" οnclick="btnok_Click" OnClientClick="return clickBtn()"/><%--方法1:在控件中添加js代碼--%> 26 <asp:Button runat="server" ID="btnok2" Text="點(diǎn)擊2" οnclick="btnok_Click" OnClientClick="return confirm('確定?')"/><%--方法2:在控件中添加js代碼--%> 27 </div> 28 </form> 29 </body> 30 </html>?
后臺(tái)代碼:
1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 using System.Web.UI;6 using System.Web.UI.WebControls;7 8 namespace test9 { 10 public partial class WebForm1 : System.Web.UI.Page 11 { 12 protected void Page_Load(object sender, EventArgs e) 13 { 14 15 } 16 protected void btnok_Click(object sender, EventArgs e) 17 { 18 Response.Write("這里是后臺(tái),按鈕被點(diǎn)擊了"); 19 } 20 } 21 }二、服務(wù)器控件調(diào)用js代碼
? ? ?做網(wǎng)頁(yè)經(jīng)常要和JavaScript打交道,經(jīng)常要用JavaScript做一些客戶端的驗(yàn)證,但是如果我們的按鈕用的是HTML控件的話,驗(yàn)證通過(guò)后無(wú)法調(diào)用后臺(tái)代碼,如果用服務(wù)器端控件,驗(yàn)證不通過(guò)有要刷新頁(yè)面,這個(gè)有時(shí)候挺煩人的,能不能讓服務(wù)器端的按鈕調(diào)用客戶端的驗(yàn)證,如果驗(yàn)證成功后在調(diào)用服務(wù)器端的方法,這樣既減少了網(wǎng)路傳輸,給用戶感覺(jué)也好。?
當(dāng)我們用模板列做刪除數(shù)據(jù)的時(shí)候一般都會(huì)返回一個(gè)對(duì)話框詢問(wèn)用戶是否確認(rèn),其實(shí)我們是通過(guò)修改模板列里的button的OnClientClick屬性將其值設(shè)為 return confirm("你確認(rèn)刪除該條記錄嗎"); 我們可以分析一下,confirm返回的是個(gè)bool值,如果我的button返回的結(jié)果也是個(gè)bool應(yīng)該也可以吧,我猜對(duì)了,比如有下面一些代碼 :
function judgeUserInput()?
{?
bool result = true;?
if(驗(yàn)證未通過(guò))?
{?
result = false;?
alert("請(qǐng)檢查您的輸入是否正確");?
}?
return result;?
}?
轉(zhuǎn)載于:https://www.cnblogs.com/lishidefengchen/p/3421168.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的C#学习之按钮点击事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: QSlider QLCDNumber
- 下一篇: 《CLR via C#》读书笔记 之 参