使用asp.net创建用户界面[转]

1.       Web命名空间

 

ü         System.Web
Application
BrowserCacheCookiesExceptionRequestResponseServerTrace对象。

ü         System.Web.SessionState
Session
对象。

ü         System.Web.Services
WebService
对象

ü         System.Web.UI
Page
Control对象。

ü         System.Web.UI.WebControls
所有服务器控件对象。

ü         System.Web.UI.HTMLControls
所有HTML控件对象。

ü         System.Web.Caching
Cache
对象。

ü         System.Web.Mail
MailMessage
MailAttachmentSmtpMail对象。

ü         System.Web.Security
Authentication
对象和模块。

 

在编写Web应用程序时,要直接处理两种类型的对象。

ü         Application对象
派生自HttpApplication,在应用程序中定义驻留在Global.asax

ü         Web Form对象
派生自Page类,在应用程序中定义驻留在Web Form模块中。

GlobalWebForm1对象是入口点,可以用它们来获得其他web对象,包括RequestResponse,都是代码中经常用到的。

 

2.       使用Applicaton对象

 

Applicaton对象在web应用程序对象层次中是顶层的对象。可以使用Application对象来配置应用程序和保存状态信息。Application对象的属性和方法中提供了对应用程序中其他对象的访问。

ASP.NET启动应用程序时,自动实例化Global.asax中定义的Global对象。可以使用该对象来配置应用程序和初始化应用程序级的状态变量。

HttpApplication基类提供的属性和方法可以用来访问Global对象的从属对象。

属性/方法

用于

Application

将数据项保存在Application状态中

Context

为当前上下文获取Trace,Cache,Error和其他对象

Modules

访问HTTP模版

Request

读请求并从当前请求中获取BrowserClientCertificatesCookiesFiles对象

Response

将文本或数据写到响应中并从当前响应中获取CacheCookiesOutput对象

Server

处理请求和响应。Server对象为URL编码和解码提供了帮助方法

Session

将数据项保存在Session状态中

User

获取发出当前请求的用户的验证信息。在默认情况下Web应用程序允许匿名访问

 

3.       使用Page对象

 

该对象控制应用程序的用户界面。Page对象的方法和属性提供了对用户界面中其他对象的访问。当某个用户在您的应用程序中请求一个页面时,ASP.NET自动实例化web窗体并显示该页。

属性/方法

用于

Application

Application状态中保存数据项

Cache

控制如何将响应缓存在服务器上

Controls

获取页面上的控件

Request

读请求并从当前请求中获取BrowserClientCertificatesCookiesFiles对象

Response

将文本或数据写到响应中,并从当前响应中获取CacheCookiesOutput对象

Server

处理请求和响应。Server对象为URL编码和解码提供了帮助方法

Session

将数据项保存在Session状态中

Trace

打开或关闭跟踪并写入跟踪日志

 

4.       使用Request对象

 

属性/方法

用于

Browser

确定发出请求的浏览器的能力。Browser属性提供浏览器版本号,判定它是否为AOL浏览器,判定该浏览器是否支持cookie,并提供其他信息

ClientCertificates

验证客户端

Cookies

cookie的形式获取客户端信息

Files

获取客户端上载的文件

InputStream

读写请求中发送的原始数据

 

5.       使用Response对象

 

使用Response对象来组成从服务器发送到客户端浏览器的响应。

属性/方法

用于

Cache

决定服务器在将响应发送到客户端前如何缓存响应

Cookies

设置发送给客户端的cookie的内容

Output

获取或设置作为响应返回给客户端的原始数据

 

6.       维护状态信息

 

ASP.NET提供了以下方式在请求之间保持变量

ü         查询字符串
在请求和响应之间,将它们作为web地址的一部分来传递信息。

ü         Cookie
将少量信息保存在客户端,客户端可能会拒绝cookie,应考虑。

ü         ViewState
asp.net
将添加到页面的ViewState属性中的项保存在页面的隐藏字段中。

ü         Session状态

ü         Application状态

使用:

ü         使用查询字符串:

Code1:

Server.Redirect(“webform1.aspx?Uname=Wombat”);

 

Code2:

Response.Write(Request.QueryString[“UName”]);

 

ü         使用cookie

Code1:

If(Request.Browser.Cookies)

 

{

 

HttpCookie cookUPrefs=new HttpCookie(“UPrefs”);

 

cookUPrefs.Value=”English”;

 

Response.Cookies.Add(cookUPrefs);

 

}

 

Code2:

If(Request.Browser.Cookies)

 

{

 

If(Request.Cookies[“UPrefs”])!=null

 

  Session[“Lang”]=Request.Cookies[“UPrefs”].Value;

 

}

 

 

ü         使用ViewState

使用ViewState属性可以将数据保存到页面的字段中。因为ViewState将数据存储在页面上,所以只能用于能被序列化的项。

Code1:

ViewState.Add(ViewState.Count.ToString(),TextBox1.Text);

 

Code2:

Foreach(StateItem staItem in ViewState.Values)

 

{

 

  Response.Write(staItem.Value.ToString());

 

}

 

ASP.NET为存储在页面上的隐藏数据编码。

ü         使用ApplicationSession状态

略。

 

7.       服务器控件和HTML控件

 

功能

服务器控件

HTML控件

Server envents

触发服务器上控件特有的事件

只能够触发服务器上页面级的事件

State management

输入到控件中的数据在请求之间可以维持

数据不能维持,必须使用页面级的脚本来保存和恢复

Adaptation

自动检测浏览器并调整到恰当的显示

没有自动适应功能,必须在代码中检测浏览器

Properties

.NET Framework为每个控件提供了一组属性。利用属性可以在服务器代码中改变控件的外观和行为

只有html属性

ü         不是所有的控件都需要服务器端的事件或状态管理
在进行数据绑定时,这点尤其正确。绑定项通常在每次请求时都会根据数据源来刷新,因此不维持绑定控件的状态信息会更加有效。这表明对于绑定的服务器控件您可以使用html控件或关闭状态管理。

ü         您可以完全控制服务器控件呈现的内容

 

8.       ASP.NET的列表和表控件

 

控件

用于

ListBox

在简单的可滚动列表格式中显示只读文本

DropDownList

在简单的下拉列表中显示只读文本

Table

在行和列中显示文本和控件。表控件允许使用TableRowsTableCells集合在代码中动态地生成表格

DataGrid

使用可以控制外观的模板在行和列中显示文本和控件。DataGrid控件有内建的格式化、排序和分页能力

DataList

使用控制外观的模板显示文本和控件行。DataList控件有内建的格式化和选择能力

Repeater

使用控制外观的模板显示其他控件行。不包含DataGridDataList内建的能力

注意:当您使用服务器控件进行数据绑定时,可以关闭这个控件的状态管理。这样可以改善性能因为DataBind方法代替了asp.net提供的自动视图状态管理。

9.       RadioButtonRadioButtonListCheckBoxCheckBoxList

 

ü         可以使用Checked属性从CheckBoxRadioButton获取设置。

ü         要从RadioButtonListCheckBoxList中获取或设置值,可以使用Foreach循环来检查列表中每个控件。RadioButtonListCheckBoxList包含的表示CheckBox控件,而是List控件。要确定list控件的设置,可以使用Selected属性。如

foreach(ListItem lstItem in RadioButtonList1.Items)

 

{

 

  If(lstItem.Selected)

 

    Response.Write(“xxx”);

 

}

 

 

10.   显示图形和广告

 

显示图形:

ü         作为背景

ü         作为前景:Image控件

ü         作为按钮:ImageButton控件

ü         作为广告:AdRotator

Image控件不响应用户事件,但可以动态显示图形,只需要:

Image1.ImageUrl=”abc.jpg”;

 

AdRotator的使用:

1)  添加控件

2)  添加xml文件,指定targetSchemaAdRotatorScheduleFile

3)  添加广告tags

4)  设置控件的AdvertisementsFile属性为刚创建的xml文件

 

11.   从客户端获取文件

 

1)  File Field HTML控件放到web窗体上

2)  在控件的右键菜单上选择Run As Server Control

3)  在窗体的html代码里添加Enctype属性

<form id="Form1" method="post" runat="server" enctype="multipart/form-data">

4)  添加处理代码

string strFileName=fileUpload.PostedFile.FileName;//获取客户端完整文件名

strFileName=System.IO.Path.GetFileName(strFileName);//获得不包括路径的文件名

 

fileUpload.PostedFile.SaveAs(Request.MapPath(Request.ApplicationPath)+"//"+strFileName);

 

//Request.ApplicationPath返回虚拟目录,Request.MapPath方法映射为服务器本地路径

File Field HTML控件的PostedFile代表这个正在上传的文件。

 

12.   验证数据

 

客户验证由名为WebUIValidation.jsJscript库提供。

验证控件

用于

RequiredFieldValidator

检查控件是否包含数据

CompareValidator

检查输入的项是否与另一个控件中的条目匹配

RangeValidator

检查输入的项是否介于两个值之间

RegularExpressionValidator

检查输入的项是否与指定的格式匹配

CustomValidator

使用客户端脚本或服务器端脚本检查输入的有效性

ValidationSummary

在中心位置显示验证错误或者显示常规的验证错误说明

注意:使用这些验证也必须提供一个触发回递事件的控件。

为了让用户取消验证,可以提供一个能设置Page_ValidationActive属性的Submit HTML控件:

<INPUT οnclick="Page_ValidationActive=false;" style="Z-INDEX: 114; LEFT: 232px; POSITION: absolute; TOP: 328px" type="submit" value="Submit">

上述按钮的定义取消了验证并将页面传回服务器。可以通过检查Page_Load事件过程中Page对象的IsValid属性来判断用户是否取消了这项操作。您必须重新验证该页面,因为取消验证时将把IsValid设置为true

private void Page_Load(object sender, System.EventArgs e)

{

       if(Page.IsPostBack)

       {

              Page.Validate();

              if(!Page.IsValid)  //用户取消了验证

                     Response.Redirect("default.htm");

       }

}

 

13.   在窗体间导航

 

ASP.NET提供了5种在应用程序的页面间导航的不同方法

导航方法

用于

Hyperlink控件

导航到其他页面

Response.Redirect方法

在代码中导航到其他页面,等价于单击一个链接

Server.Transfer方法

结束当前web窗体开始执行一个新的web窗体。这个方法只在导航到asp.x页面时有用

Server.Execute方法

开始执行一个新的web窗体,同时仍然显示当前窗体。这个方法只在导航到asp.x页面时有用

Window.Open脚本方法

在客户端的一个新的浏览器窗口中显示页面

ü         HyperlinkResponse.Redirect

Hyperlink服务器控件不公开任何服务器端的用户事件。

ü         Transfer

Transfer能跨越多个请求维持源页面的一些信息。将Transfer方法的preserveForm参数设置为true可以使QueryString,ViewState和事件过程信息可以用于目标窗体上。

使用preserveForm参数设置为trueTransfer方法时,必须首先将web窗体的Page指令中的EnableViewStateMac属性设置为false。默认情况下asp.net散列ViewState信息,将该属性设置为false来禁止这种散列。

<%@ Page language=”C#” EnableViewStateMac=”false” ……%>

调用:

Server.Transfer(“Webform2.aspx”,true);

可以使用Request对象的Form方法从源Web窗体中获得ViewState信息。

ü         使用Execute方法

使用server对象的Execute方法时,无需离开第一个web窗体就可以处理第二个窗体。和使用Transfer方法一样,要将web窗体的EnableViewStateMac设置为false

Private void butExecute_Click(Object sender,System.EventArgs e)

 

{

 

   System.IO.StringWriter swrTarget=new System.IO.StringWriter();

 

   Server.Execute(“Table.aspx”, swrTarget);

 

   litTarget.Text=”<h2>Table Results</h2>”+ swrTarget.ToString();

 

}

 

其中第二个参数是可选的,如果省略,结果就被写到当前页面中。两个页面的服务器控件都能响应用户事件。注意任何发生在第二个web窗体的回递事件都会清除第一个窗体的内容。所以只有第二个web窗体不含触发回递事件的控件时,联合web窗体才比较有用。

ü         使用Window.Open方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值