ExtAspNet秘密花园(二) — 一切从头开始
2013-05-30 10:42
288 查看
这篇文章我们会从头开始使用ExtAspNet,最终完成一个模拟用户登录的界面,最终的效果图如下所示:
1.新建一个ASP.NETWeb应用程序项目。
2.从开源网站下载最新版本的ExtAspNet,并在新建项目中添加对ExtAspNet.dll的引用。
1.在<html>标签上面添加声明
每个使用ExtAspNet控件的页面都必须包含一个PageManager控件,此控件用来控制页面级别的全局参数。比如控制页面样式、语言、表单参数、AJAX参数以及布局的参数,后面会有一篇文章专门介绍这个控件。
3.设计登陆表单
由于我们想让登录表单居中显示,所以在表单外部嵌套了一个Window控件,并让Window控件居中(其实是左右居中,上下位于黄金分割点的位置)显示。
这个所谓的黄金分割点是通过WindowPosition="GoldenSection"设置的,这也是ExtAspNet的一个创新点(据说人眼在查看网页时,视线偏上一点大致位于黄金分割点的位置,而不是正中心)。
实现这一功能的代码在/ExtAspNet/js/X/X.wnd.js中的_calculateGoldenPosition函数:
4.在Window中添加SimpleForm控件
最终的ASPX中的Window标签如下所示:
这个示例涉及PageManager、Window、SimpleForm、TextBox、Button几个控件,很多属性都是不言自明的,后面我们也会详细介绍。
这里的逻辑很简单,如果用户名和密码正确,就弹出对话框显示“成功登录!”,否则显示错误信息。
整个示例虽然看似简单,却实现了很多普通ASP.NET无法实现或难以完成的任务:
1.不用一行JavaScript代码完成表单的居中显示
2.一个可拖动的窗体
3.用户名和密码输入框的客户端验证
4.表单回发不是整个页面的回发,而是AJAX(这也是ExtAspNet所特有的原生AJAX,无需任何配置和特殊的代码就默认拥有AJAX特性)
5.漂亮的提示框是通过C#代码生成的(并且可以在当前页面框架或者父页面框架中显示,这也是ExtAspNet所特有的基于IFrame的框架)
下一篇文章我们会关注对Web.config的修改,来配置ExtAspNet所需的全局参数。
注:《ExtAspNet秘密花园》系列文章由三生石上原创,博客园首发,转载请注明出处。文章目录官方论坛
项目准备
1.新建一个ASP.NETWeb应用程序项目。2.从
新建一个ASPX页面
1.在<html>标签上面添加声明<%@RegisterAssembly="ExtAspNet"Namespace="ExtAspNet"TagPrefix="ext"%>
2.在<form>标签中添加PageManager控件
<ext:PageManagerID="PageManager1"runat="server"/>
每个使用ExtAspNet控件的页面都必须包含一个PageManager控件,此控件用来控制页面级别的全局参数。比如控制页面样式、语言、表单参数、AJAX参数以及布局的参数,后面会有一篇文章专门介绍这个控件。
3.设计登陆表单
由于我们想让登录表单居中显示,所以在表单外部嵌套了一个Window控件,并让Window控件居中(其实是左右居中,上下位于黄金分割点的位置)显示。
<ext:WindowID="Window1"runat="server"Title="登录表单"IsModal="false"EnableClose="false"WindowPosition="GoldenSection"Width="350px">
</ext:Window>
这个所谓的黄金分割点是通过WindowPosition="GoldenSection"设置的,这也是ExtAspNet的一个创新点(据说人眼在查看网页时,视线偏上一点大致位于黄金分割点的位置,而不是正中心)。
实现这一功能的代码在/ExtAspNet/js/X/X.wnd.js中的_calculateGoldenPosition函数:
1:function_calculateGoldenPosition(bodySize,windowSize){
2:vartop=(bodySize.height-(bodySize.height/1.618))-windowSize.height/2;
3:if(top<5){
4:top=5;
5:}
6:varleft=(bodySize.width-windowSize.width)/2;
7:if(left<0){
8:left=5;
9:}
10:return{left:left,top:top};
11:};
4.在Window中添加SimpleForm控件
最终的ASPX中的Window标签如下所示:
1:<ext:WindowID="Window1"runat="server"Title="登录表单"IsModal="false"EnableClose="false"
2:WindowPosition="GoldenSection"Width="350px">
3:<Items>
4:<ext:SimpleFormID="SimpleForm1"runat="server"ShowBorder="false"BodyPadding="10px"
5:LabelWidth="60px"EnableBackgroundColor="true"ShowHeader="false">
6:<Items>
7:<ext:TextBoxID="tbxUserName"Label="用户名"Required="true"runat="server">
8:</ext:TextBox>
9:<ext:TextBoxID="tbxPassword"Label="密码"TextMode="Password"Required="true"runat="server">
10:</ext:TextBox>
11:<ext:ButtonID="btnLogin"Text="登录"Type="Submit"ValidateForms="SimpleForm1"ValidateTarget="Top"
12:runat="server"OnClick="btnLogin_Click">
13:</ext:Button>
14:</Items>
15:</ext:SimpleForm>
16:</Items>
17:</ext:Window>
这个示例涉及PageManager、Window、SimpleForm、TextBox、Button几个控件,很多属性都是不言自明的,后面我们也会详细介绍。
后台代码
1:protectedvoidbtnLogin_Click(objectsender,EventArgse)
2:{
3:if(tbxUserName.Text=="admin"&&tbxPassword.Text=="admin")
4:{
5:Alert.ShowInTop("成功登录!");
6:}
7:else
8:{
9:Alert.ShowInTop("用户名或密码错误!",MessageBoxIcon.Error);
10:}
11:}
这里的逻辑很简单,如果用户名和密码正确,就弹出对话框显示“成功登录!”,否则显示错误信息。
小结
整个示例虽然看似简单,却实现了很多普通ASP.NET无法实现或难以完成的任务:1.不用一行JavaScript代码完成表单的居中显示
2.一个可拖动的窗体
3.用户名和密码输入框的客户端验证
4.表单回发不是整个页面的回发,而是AJAX(这也是ExtAspNet所特有的原生AJAX,无需任何配置和特殊的代码就默认拥有AJAX特性)
5.漂亮的提示框是通过C#代码生成的(并且可以在当前页面框架或者父页面框架中显示,这也是ExtAspNet所特有的基于IFrame的框架)
下一篇文章我们会关注对Web.config的修改,来配置ExtAspNet所需的全局参数。
注:《ExtAspNet秘密花园》系列文章由
相关文章推荐
- [原创]ExtAspNet秘密花园(二) — 一切从头开始
- [原创]ExtAspNet秘密花园(二) &mdash; 一切从头开始
- 一切的一切从头开始
- D3D9 SDK文档笔记3---一切从头开始(2)
- [原创]ExtAspNet秘密花园(二十) — 表格之模板列与编辑框
- 跳个“一切从头开始”的槽,还来得及吗
- [原创]ExtAspNet秘密花园(十六) — 表格之排序与分页
- D3D9 SDK文档笔记2---一切从头开始(1)
- [原创]ExtAspNet秘密花园(十八) — 表格之事件处理
- 一切,从头开始
- [原创]ExtAspNet秘密花园(十一) &mdash; 布局概述
- 一切从头开始
- [原创]ExtAspNet秘密花园(十七) — 表格之扩展列
- [原创]ExtAspNet秘密花园(十) — Ajax特性
- [原创]ExtAspNet秘密花园(十二) — 布局之锚点布局
- [原创]ExtAspNet秘密花园(十一) — 布局概述
- [原创]ExtAspNet秘密花园(十五) — 表格概述
- [原创]ExtAspNet秘密花园(十九) — 表格之复选框列
- ext 从头开始 extjs 控件 触发事件 的几种方式
- [原创]ExtAspNet秘密花园(十三) — 布局之行布局和列布局