成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗(yàn)證控件等問題

開發(fā) 后端
本文解決了ASP.NET1.1, ASP.NET2.0,ASP.NET3.5中驗(yàn)證控件和自定義彈出確認(rèn)窗口的沖突問題的。

在asp.net頁面中,當(dāng)有驗(yàn)證控件,而且想在驗(yàn)證控件驗(yàn)證通過之后,彈出一個(gè)確認(rèn)對(duì)話框,提示是否繼續(xù)。

當(dāng)在button按鈕上添加客戶端的onclick="return confirm('Are you sure to continue?')"時(shí),驗(yàn)證控件的驗(yàn)證就會(huì)失效。因?yàn)轵?yàn)證控件也是添加客戶端的onclick事件。

在asp.net2.0, asp.net3.5中可以使用如下方法解決。(asp.net1.1的稍后再說)

首先將button的CausesValidation=“false”, 即 

  1. < asp:Button ID="Button1" runat="server" Text="Button"  CausesValidation="False"  OnClick="clickme" /> 

其實(shí),CausesValidation="False/True"都不會(huì)有任何影響。

接著,在后臺(tái)代碼的Page_Load事件中,注冊(cè)客戶端的onclick事件。

方法1:

  1. protected void Page_Load(object sender, EventArgs e)  
  2.     {  
  3.         Button1.OnClientClick = ClientScript.GetPostBackEventReference(  
  4.             new PostBackOptions(Button1, """"falsetruefalsefalsetrue""))   
  5.             + ";return (Page_IsValid && confirm('Are you sure to continue?'));";   
  6.     }  

這里要特別注意的一個(gè)地方是,不能把它放在if(!isPostBack) {...}的里面,否則,***次正常,下一次開始就會(huì)報(bào)

Microsoft JScript 運(yùn)行時(shí)錯(cuò)誤: 'WebForm_PostBackOptions' 未定義

即要求每觸發(fā)一次,都要重新注冊(cè)一次onclick事件。

昨天測(cè)試的時(shí)候有這個(gè)問題,可能是VS2008安裝的有問題的緣故(設(shè)計(jì)模式就無法顯示),

今天測(cè)試了下,可以只注冊(cè)一次,即頁面加載時(shí),如下: 

  1. protected void Page_Load(object sender, EventArgs e)  
  2.     {  
  3.         if (!IsPostBack)  
  4.         {  
  5.             Button1.OnClientClick = ClientScript.GetPostBackEventReference(  
  6.                 new PostBackOptions(Button1, """"falsetruefalsefalsetrue""))  
  7.                 + ";return (Page_IsValid && confirm('Are you sure to continue?'));";  
  8.         }  
  9.           
  10.     }  

驗(yàn)證控件方法2:

  1. protected void Page_Load(object sender, EventArgs e)  
  2.     {  
  3.         if (!IsPostBack)  
  4.         {  
  5.             Button1.OnClientClick = "javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button1', '', true, '', '', false, false));return (Page_IsValid && confirm('Are you sure to continue?'));WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button1', '', true, '', '', false, false))";  
  6.         }  
  7.     }  

其實(shí),方法1運(yùn)行后,在客戶端html中生成的onclick代碼就是方法2中的代碼。

若是用方法2的方法在后臺(tái)直接寫javascript字符串,則可以去掉***一句,不然,就多了一次驗(yàn)證了。即如下:

  1. protected void Page_Load(object sender, EventArgs e)  
  2.     {  
  3.         if (!IsPostBack)  
  4.         {  
  5.             Button1.OnClientClick = "javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button1', '', true, '', '', false, false));return (Page_IsValid && confirm('Are you sure to continue?'));";  
  6.         }  
  7.     }  

方法1每次點(diǎn)擊按鈕之前都要在page_load中注冊(cè)一次,而方法2只要在page_load中注冊(cè)一次就夠了。

vb.net與C#生成的html客戶端代碼有點(diǎn)點(diǎn)不同

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
  2.         If Not Me.Page.IsPostBack Then  
  3.             Me.Button1.OnClientClick = "javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button1', '', true, 'name', '', false, false));return (Page_IsValid && confirm('Are you sure to continue?'));" 
  4.         End If  
  5.     End Sub  

  1. Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender  
  2.         If Not Me.Page.IsPostBack Then  
  3.             'VB.NET中要把下面這句放在Page_PreRender里,不能放在Page_Load中,且只需要注冊(cè)一次就可以了  
  4.             '在生成html的客戶端代碼中,比C#少了一部分代碼。  
  5.             Me.Button1.OnClientClick = Me.Page.ClientScript.GetPostBackEventReference(New System.Web.UI.PostBackOptions(Me.Button1, """", False, True, False, False, True, "name")) & _  
  6.             ";return (Page_IsValid && confirm('Are you sure to continue?'));" 
  7.         End If  
  8.     End Sub  

asp.net2.0和asp.net3.5的介紹完了,下面介紹asp.net 1.1里的解決方案

首先也是將button的CausesValidation=“false”, 即

  1. < asp:Button ID="Button1" runat="server" Text="Button"  CausesValidation="False"  OnClick="clickme" /> 

接著,在后臺(tái)代碼的Page_Load事件中,注冊(cè)客戶端的onclick事件。 

  1. private void Page_Load(object sender, System.EventArgs e)  
  2.         {  
  3.             // 在此處放置用戶代碼以初始化頁面  
  4.             if (!this.Page.IsPostBack)  
  5.             {  
  6.                 string msg = "javascript:if (typeof(Page_ClientValidate) == 'function'){ if(Page_ClientValidate()) return window.confirm('Are you sure to continue?');}";  
  7.                 this.Button1.Attributes.Add("onclick",msg);  
  8.             }  
  9.               
  10.         }  

因asp.net1.1中注冊(cè)onclick代碼只包含javascript代碼,故可以放在if(!IsPostBack){...} 里面而不會(huì)有問題。

這樣就會(huì)先驗(yàn)證控件,通過了再彈出確認(rèn)對(duì)話框。

【編輯推薦】

  1. ASP.NET MVC分頁控件的實(shí)現(xiàn)
  2. ASP.NET MVC實(shí)例:使用Northwind和Entity框架
  3. 戲說ASP.NET的解釋原理
  4. ASP.NET cookie操作心得一覽
  5. ASP.NET獲得當(dāng)前插入行主鍵的代碼
責(zé)任編輯:book05 來源: cnblogs
相關(guān)推薦

2009-07-29 14:59:26

asp.net1.1ASP.NET2.0

2009-07-29 15:58:54

靜態(tài)文件處理ASP.NET

2009-07-29 15:51:29

ASP.NET中執(zhí)行w

2009-07-29 11:29:16

ASP.NET1.1ASP.NET2.0

2009-07-29 15:06:16

asp.net1.1asp.net2.0

2009-07-29 15:26:43

ASP.NET連接Or

2009-07-29 11:46:22

asp.net1.1

2009-08-04 14:44:40

callback實(shí)現(xiàn)機(jī)ASP.NET2.0

2009-07-29 16:04:39

ASP.NET1.1驗(yàn)

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-08-07 16:18:08

ASP.NET2.0數(shù)

2010-09-06 13:51:38

CSS失效CSS

2009-07-27 14:50:24

ChartAreas控ASP.NET 3.5

2009-02-01 13:57:53

ASP.NET.NET圖表控件

2009-08-07 14:40:36

RegularExprASP.NET驗(yàn)證控件

2009-07-30 13:18:31

2009-07-21 15:27:12

ASP.NET 2.0

2009-07-24 17:15:52

SiteMapData

2009-08-05 17:43:48

ASP.NET 2.0

2009-12-02 09:07:45

ASP.NET 4.0
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 伊人在线 | 日韩精品中文字幕在线 | 国产精品久久久久久福利一牛影视 | 97久久精品 | 亚洲日本乱码在线观看 | 欧美久久久久久久久 | 午夜精品久久久久久久星辰影院 | 欧美成人免费在线 | 午夜成人免费视频 | 国产精品一二区 | 国产 日韩 欧美 中文 在线播放 | 激情五月婷婷在线 | 亚洲国产精品福利 | 美女福利网站 | 久久99精品久久久久久国产越南 | 午夜一区二区三区视频 | 在线激情视频 | 干干干操操操 | 黄色免费网站在线看 | 国产一区二区三区视频 | 日韩免费 | 欧美日韩中文字幕在线 | 视频在线观看亚洲 | 国产精品视频一区二区三区四区国 | 国内精品久久精品 | 中国一级特黄毛片大片 | 羞羞视频在线网站观看 | 毛片av免费在线观看 | 国产精品免费一区二区 | 中文字幕av在线播放 | 国产资源视频 | 国产福利在线看 | 成人不卡 | 日日爱夜夜操 | 久草视| 欧美精品一区二区在线观看 | 国产精品夜间视频香蕉 | 美女一级a毛片免费观看97 | 久久久久无码国产精品一区 | 三级视频国产 | 国产高清视频一区 |