软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > ASP教程 > Atlas客户端页面周期事件及实践:客户端验证

Atlas客户端页面周期事件及实践:客户端验证

大家都知道asp.net页面有很多服务端的周期事件,随着atlas的推出,微软又进一步引入了客户端的周期事件。主要包含以下几个

initializeRequest 发生在页面初始化之前
beginRequest 发生在提交数据之前
pageLoading 发生在提交进行时
pageLoaded 发生在提交完成,页面刷新之后
endRequest 发生在整个操作完成之后
本篇根据笔者的项目经验,总结了这些事件主要用途:

一 客户端验证

客户端验证是BS系统中必不可少的操作,他发生在向服务器提交数据之前。因此我们可以在initializeRequest事件中来完成该操作。下 面的例子模拟了一个登录的过程,在点击登录按钮的时候先检查是否有其他操作正在进行,然后再检查用户名和密码是否为空,检查通过后再提交服务端,否则就取 消请求。

ASP.NET-Code:
<form id="form1" runat="server"> <asp:ScriptManager ID="sm1" runat="server"> </asp:ScriptManager> <script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckInput); function CheckInput(sender,args) { var pass=true; var prm = Sys.WebForms.PageRequestManager.getInstance(); if(prm.get_isInAsyncPostBack()) { alert("请勿重复登陆"); pass=false; } else { var no = $get('txtAccount'); var pwd = $get('txtPwd'); if(no.value=='') { alert('用户名不能为空'); no.focus(); pass=false; } else if(pwd.value=='') { alert('密码不能为空'); pwd.focus(); pass=false; } } if(!pass) { args.set_cancel(true); } } </script> <asp:UpdatePanel ID="up1" runat="server" UpdateMode="conditional"> <ContentTemplate> <asp:TextBox ID="txtAccount" runat="server"></asp:TextBox><br /> <asp:TextBox ID="txtPwd" runat="server" TextMode="password"></asp:TextBox><br /> <asp:Button ID="btnLog" runat="server" Text="LogIn" OnClick="btnLog_Click" /> </ContentTemplate> </asp:UpdatePanel></form>

C#-Code:
protected void btnLog_Click(object sender, EventArgs e){ System.Threading.Thread.Sleep(2000); if (!(txtAccount.Text == "liuwu" && txtPwd.Text == "liuwu.net")) { throw new ApplicationException("用户名或密码错误"); }}
例子中使用 Sys.WebForms.PageRequestManager.getInstance()来获取当前页面的PageRequestManager实 例,并使用该实例的add_initializeRequest方法来添加initializeRequest事件,最后使用 InitializeRequestEventArgs.set_cancel(true)方法来取消当前的请求。注意如果用户名或密码不正确的话,服务 端会抛出异常,默认情况下,atlas会在客户端弹出对话框来显示异常信息,后面的文章会介绍如何自定义错误提示。

来自:http://www.cnblogs.com/liuwu/

    相关阅读
    栏目导航
    推荐软件