真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗(yàn)證控件等問(wèn)題

這篇文章將為大家詳細(xì)講解有關(guān)如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗(yàn)證控件等問(wèn)題,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專(zhuān)注于網(wǎng)站建設(shè)|成都企業(yè)網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都宴會(huì)酒店設(shè)計(jì)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷(xiāo)售的產(chǎn)品,結(jié)合品牌形象的塑造,量身定制品質(zhì)網(wǎng)站。

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

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

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

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

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

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

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

方法1:

protected void Page_Load(object sender, EventArgs e)      {          Button1.OnClientClick = ClientScript.GetPostBackEventReference(              new PostBackOptions(Button1, "", "", false, true, false, false, true, ""))               + ";return (Page_IsValid && confirm('Are you sure to continue?'));";       }

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

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

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

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

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

protected void Page_Load(object sender, EventArgs e)      {          if (!IsPostBack)          {              Button1.OnClientClick = ClientScript.GetPostBackEventReference(                  new PostBackOptions(Button1, "", "", false, true, false, false, true, ""))                  + ";return (Page_IsValid && confirm('Are you sure to continue?'));";          }                }

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

protected void Page_Load(object sender, EventArgs e)      {          if (!IsPostBack)          {              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))";          }      }

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

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

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

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

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

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

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

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

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

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

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

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

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

這樣就會(huì)先驗(yàn)證控件,通過(guò)了再?gòu)棾龃_認(rèn)對(duì)話框。

關(guān)于如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗(yàn)證控件等問(wèn)題就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站題目:如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗(yàn)證控件等問(wèn)題
URL鏈接:http://weahome.cn/article/pjcdss.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部