中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗證控件等問題

發布時間:2021-11-26 18:03:54 來源:億速云 閱讀:161 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗證控件等問題,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

在asp.net頁面中,當有驗證控件,而且想在驗證控件驗證通過之后,彈出一個確認對話框,提示是否繼續。

當在button按鈕上添加客戶端的onclick="return confirm('Are you sure to continue?')"時,驗證控件的驗證就會失效。因為驗證控件也是添加客戶端的onclick事件。

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

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

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

其實,CausesValidation="False/True"都不會有任何影響。

接著,在后臺代碼的Page_Load事件中,注冊客戶端的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?'));";       }

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

Microsoft JScript 運行時錯誤: 'WebForm_PostBackOptions' 未定義

即要求每觸發一次,都要重新注冊一次onclick事件。

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

今天測試了下,可以只注冊一次,即頁面加載時,如下:

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?'));";          }                }

驗證控件方法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))";          }      }

其實,方法1運行后,在客戶端html中生成的onclick代碼就是方法2中的代碼。

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

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每次點擊按鈕之前都要在page_load中注冊一次,而方法2只要在page_load中注冊一次就夠了。

vb.net與C#生成的html客戶端代碼有點點不同

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中,且只需要注冊一次就可以了              '在生成html的客戶端代碼中,比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" />

接著,在后臺代碼的Page_Load事件中,注冊客戶端的onclick事件。

private void Page_Load(object sender, System.EventArgs e)          {              // 在此處放置用戶代碼以初始化頁面              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中注冊onclick代碼只包含javascript代碼,故可以放在if(!IsPostBack){...} 里面而不會有問題。

這樣就會先驗證控件,通過了再彈出確認對話框。

關于如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中驗證控件等問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武功县| 西平县| 兴城市| 深圳市| 申扎县| 公安县| 淮滨县| 横峰县| 屏东县| 定边县| 内黄县| 新巴尔虎左旗| 吴桥县| 永仁县| 塘沽区| 邻水| 金沙县| 巩留县| 宝坻区| 射阳县| 巨野县| 铜梁县| 通江县| 邛崃市| 望城县| 江都市| 灯塔市| 新和县| 北碚区| 通许县| 唐海县| 罗江县| 高碑店市| 大荔县| 伊金霍洛旗| 香港| 县级市| 新邵县| 巴彦淖尔市| 罗平县| 无极县|