Asp.Net+Extjs实现登录
2014-10-05 14:30
357 查看
通过对Ext的学习,发现学习分三部曲:1.看官网的Demo,宏观了解Ext能做什么;2.看相关书籍,做理论指导;3.实现官网的Demo,体会Ext的真谛。
在完毕了第一、二部后,如今我们须要做的是实现第三步,我的目标效果是用Extjs画页面,用Asp.Net的一般处理程序做后台server实现登录功能。
宏观上的指导有了,以下进行细分,我整理了实现过程,思路例如以下:
1.画一个登录的Panel--loginPanel;
2.定义一个检測是否登录成功的函数CheckLogin;
3.定义一个登录窗口--win,将loginPanel加入到登录窗口中;
4.在登录窗口中加入“确定”和“取消”,为“确定”button绑定登录验证函数CheckLogin;
5.为登录窗口绑定一个最小化事件;
6.定义一个登录成功弹出新窗口函数loginSuccess
有了理论指导,以下进行代码实现:
后台Extjs一般处理程序的代码实现:
代码的运行过程:当点击确定button后,会触发CheckLogin函数,CheckLogin通过Ajax将获取的数据传到Extjs一般处理程序进行检验,并获取Extjs一般处理程序的返回值。假设返回值是ok,则调用loginSuccess函数弹出新窗口;否则,则弹出登录失败的提示。
执行代码后,登录页面效果图例如以下:
登录成功后的效果图例如以下:
到此,用Extjs实现的登录功能已经完毕。此外, 在学习过程中,发现自己存在浅尝辄止的问题,刚学会一点就以为自己明确了,希望大家能引以为戒,不要犯相同的错误。
Ext是个非常好的框架,学好它在非常大程度上能帮助我们学习DWZ,希望大家能用心学习这块。
在完毕了第一、二部后,如今我们须要做的是实现第三步,我的目标效果是用Extjs画页面,用Asp.Net的一般处理程序做后台server实现登录功能。
宏观上的指导有了,以下进行细分,我整理了实现过程,思路例如以下:
1.画一个登录的Panel--loginPanel;
2.定义一个检測是否登录成功的函数CheckLogin;
3.定义一个登录窗口--win,将loginPanel加入到登录窗口中;
4.在登录窗口中加入“确定”和“取消”,为“确定”button绑定登录验证函数CheckLogin;
5.为登录窗口绑定一个最小化事件;
6.定义一个登录成功弹出新窗口函数loginSuccess
有了理论指导,以下进行代码实现:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link href="css/ext-all.css" rel="stylesheet" type="text/css" /> <script src="js/ext-base.js" type="text/javascript"></script> <script src="js/ext-all.js" type="text/javascript"></script> <script type="text/javascript" language="javascript"> var loginPanel; Ext.onReady(function () { //1.画一个登录的Panel loginPanel = new Ext.form.FormPanel({ labelWidth: 40, width: 230, height: 120, frame: true, bodyStyle: "padding:20", //给这个面板加入内间距 items: [ { xtype: "textfield", id: "userName", fieldLabel: "username", style: "margin:1 3 15 3", labelWidth: 10, emptyText: "请输入username...", allowBlank: false, blankText: "username不能为空" }, { xtype: "textfield", id: "userPass", fieldLabel: "密 码", style: "margin:1 3 15 3", labelWidth: 10, inputType: "password" } ] }); //2.定义一个检測是否登录成功的函数CheckLogin function CheckLogin() { var userName = Ext.getCmp("userName").getValue(); //username var userPass = Ext.getCmp("userPass").getValue(); //密 码 if (Ext.util.Format.trim(userName) == "" || Ext.util.Format.trim(userPass) == "") {//username和password不能为空 Ext.Msg.alert("提示", "username或password不能为空"); return; } Ext.Ajax.request({ url: "Extjs.ashx?userName=" + userName + "&passWord=" + userPass, //将username和password传送到url method: "get", success: function (response) { var getData = response.responseText; //获取服务器数据 if (getData == "ok") { loginSuccess(); //登录成功了 } else { Ext.Msg.alert("警告", "登录失败!"); } }, failure: function (response, options) { alert("失败"); } }); } //3.定义一个登录窗口--win,将loginPanel加入到登录窗口中; var win = new Ext.Window({ title: "登录窗口", minimizable: true, //最小化 maximizable: true, //最大化 width: 240, height: 186, frame: true, items: [loginPanel], //4.在登录窗口中加入“确定”和“取消”,为“确定”按钮绑定登录验证函数CheckLogin buttons: [{ text: "确定", handler: CheckLogin }, { text: "取消"}] }); //5.为登录窗口绑定一个最小化事件 win.minimize = function () { Ext.MessageBox.confirm("提示", "是否要最小化", minwindow); function minwindow(btn) { if (btn == "yes") { Ext.Msg.alert("提示", "确定最小化么", function () { alert("成功最小化"); }); } } } //6.定义一个登录成功弹出新窗口函数loginSuccess; function loginSuccess() { var winLoginSuccess = new Ext.Window({ title: "登录成功后的窗口", minimizable: true, //最小化 maximizable: true, //最大化 collapsible: true, width: 550, height: 550, frame: true, items: [{ xtype: "button", frame: true, text: "我是登录成功后窗口的一个按钮"}] }); win.hide(); //登录窗口隐藏 winLoginSuccess.show(); //显示登录成功后的窗口 } win.show(); //显示窗口 }); </script> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
后台Extjs一般处理程序的代码实现:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Demo { /// <summary> /// Extjs 的摘要说明 /// </summary> public class Extjs : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string userName = context.Request.QueryString["userName"]; string userPass = context.Request.QueryString["passWord"]; if (userName == "quwenzhe" && userPass == "123") { context.Response.Write("ok"); //假设验证成功则返回ok } else { context.Response.Write("fail");//假设验证失败则返回fail } context.Response.End(); } public bool IsReusable { get { return false; } } } }
代码的运行过程:当点击确定button后,会触发CheckLogin函数,CheckLogin通过Ajax将获取的数据传到Extjs一般处理程序进行检验,并获取Extjs一般处理程序的返回值。假设返回值是ok,则调用loginSuccess函数弹出新窗口;否则,则弹出登录失败的提示。
执行代码后,登录页面效果图例如以下:
登录成功后的效果图例如以下:
到此,用Extjs实现的登录功能已经完毕。此外, 在学习过程中,发现自己存在浅尝辄止的问题,刚学会一点就以为自己明确了,希望大家能引以为戒,不要犯相同的错误。
Ext是个非常好的框架,学好它在非常大程度上能帮助我们学习DWZ,希望大家能用心学习这块。
相关文章推荐
- Asp.Net+Extjs实现登录
- 在ASP.NET登录页面中如何实现文本框焦点自动跳转及通过回车键提交表单
- 在ASP.NET 中实现单点登录
- ASP.NET 安全认证(四)——巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
- 在ASP.NET 中实现单点登录(从老孟那里抄的)
- 在ASP.NET 中实现单点登录
- 在ASP.NET 中实现单点登录
- 在ASP.NET 中实现单点登录
- ASP.NET 安全认证(三)-用Form 表单认证实现单点登录(Single Sign On)
- 在ASP.NET 中实现单点登录
- 在ASP.NET中实现单点登录(不允许多用户使用同一帐号同时登录)
- ASP.NET 安全认证—— 用Form 表单认证实现单点登录(Single Sign On)
- 单点登录在ASP.NET上的简单实现
- 在ASP.NET 中实现单点登录 出自:【孟宪会之精彩世界】
- 在ASP.NET 中实现单点登录
- 在ASP.NET 中实现单点登录
- 在ASP.NET 中实现单点登录
- 在ASP.NET 中实现单点登录
- ASP.NET 安全认证——巧妙实现 Form 表单认证跨站点、跨服务器的单点登录
- ASP.NET 安全认证(四)-巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)