如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中验证控件等问题

技术如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中验证控件等问题这篇文章将为大家详细讲解有关如何解析ASP.NET1.1、ASP.NET2.0、ASP.NET3.5中验证控件等问题,文章内容质

本文将详细解释如何分析ASP中的身份验证控件。NET1.1,ASP。NET2.0和ASP.NET3.5 .本文内容质量较高,边肖将与大家分享,以供参考。希望大家看完这篇文章能有所了解。

在ASP.NET页面中,当存在验证控件,并且您想要通过验证控件的验证时,会弹出一个确认对话框,提示是否继续。

当您添加客户端的onclick=’ return confirm ‘(您确定要继续吗?)’,验证控件的验证将失败。因为验证控件也是添加客户端的onclick事件。

在ASP中。NET 2.0和ASP。NET 3.5,可以使用以下方法。(asp.net1.1将在后面讨论)

首先,设置原因验证=“假”按钮=“假”,即

ASP : button id=’ button 1 ‘ Runat=’ server ‘ text=’ button ‘原因验证=’ False ‘ onclick=’ click me ‘/实际上,原因验证=’False/True ‘不会有任何影响。

然后,在后台代码的Page_Load事件中,注册客户端的onclick事件。

方法1:

protected void page _ Load(object sender,EventArgse){Button1。OnClientClick=ClientScript。getpostbackeeventreference(new postbackoptions(button 1 ”,’ ‘,false,true,false,false,true ‘ ‘))’;返回(Page _ IsValidconfirm(‘ are youuretocontinue?’));’;}这里要特别注意的一点是不能放在if(!ISP back){ 0.},否则,* * *次正常,下次会上报。

未定义Microsoft JScript运行时错误:“WebForm _ post back options”

也就是说,每次onclick事件被触发时,都需要重新注册它。

昨天测试有这个问题,可能是安装了VS2008(设计模式无法显示)。

今天测试后,您只能注册一次,即页面加载时,如下所示:

protected void page _ Load(object sender,EventArgse){if(!IsPostBack){Button1。OnClientClick=ClientScript。getpost backeventreference(new post backoptions(Butt

on1, "", "", 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中验证控件等问题就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/119736.html

(0)

相关推荐

  • 怎么实现Hadoop集群搭建

    技术怎么实现Hadoop集群搭建怎么实现Hadoop集群搭建,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。阅读编译文档 准备一个hadoop源码包,我选择的

    攻略 2021年11月16日
  • good和well的区别,well和good的区别试题

    技术good和well的区别,well和good的区别试题一good和well的区别、词义辨析不一样1、 well专指人身体“健康的”,也指“良好的”“幸运的”。
    I dont feel very well today.

    生活 2021年10月31日
  • Oracle锁的面试题有哪些

    技术Oracle锁的面试题有哪些本篇内容介绍了“Oracle锁的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年11月5日
  • 服务器香港:香港云服务器会影响您的 SEO 吗

    技术服务器香港:香港云服务器会影响您的 SEO 吗谈到SEO,细节很重要。通常被忽视的细节之一是您选择的服务器是否可靠。通常很多站长会花很多时间在网站内部的和外链的优化,但是却往往忽视了服务器的性能和稳定性会对您的排名产

    礼包 2021年10月19日
  • 权限设置在哪里,设置应用管理怎么开权限

    技术权限设置在哪里,设置应用管理怎么开权限工具/原料:小米6手机权限设置在哪里、手机管家 小米6手机应用管理权限开启操作步骤如下: 1、在手机桌面找到【手机管家】,点击进入【手机管家】;
    2、在【手机管家】界面,

    生活 2021年10月20日
  • 一千瓦时等于多少焦耳,瓦和焦耳是什么换算关系

    技术一千瓦时等于多少焦耳,瓦和焦耳是什么换算关系1W=1J/s 1瓦=1焦耳/秒 我再补充一下:这里面,瓦是功率单位,既然是“功率”,有一个“率”字,就可以知道,是单位时间上的意义了一千瓦时等于多少焦耳。比如,速率:m

    生活 2021年10月24日