<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
1、在CallBack之后保持滚动条的位置 在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行。为了不停留在想要得行,页面会重新加载并且必须在顶部向下滚动。在Asp2.0中,只需要简单的在页面的属性中加入MaintainScrollPostionOnPostBack属性即可:
复制ASPX代码保存代码
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeFile="" Inherits="" %>
2、页面加载后设置默认焦点到控件上 这也是一个非常简单的例子,不需要javascript的辅助即可完成。如果在页面中有一两个textbox,为什么要让用户去点击textbox来开始输入数据呢?是不是可以能够让光标已经停留在textbox进而可以输入数据呢?使用HtmlForm控件的DefaultFocus属性就可以轻易的做到:
复制ASPX代码保存代码
<form id="frm" DefaultFocus="txtUserName" runat="server">
</form>
3、用户点击“Enter”键时触发默认按钮的click实践。 在Asp1.1中,想要使用户点击“Enter”键就能关联到一个button的服务器段的click事件需要借助于javascript,这是很痛苦的。幸好,现在可你使用HtmlForm控件的DefaultButton属性来设置。这个属性也可以设置到Panel控件上,当用户移动到页面中不同的Panel上,点击enter键来触发不同的button控件的click事件。
复制ASPX代码保存代码
<form id="frm" DefaultButton="btnSubmit" runat="server">
</form>
4、简单的寻找固定的控件。 在页面的控件中按层次寻找控件很痛苦,但是如果你知道控件怎样固定在页面中,就可以用简写”$”来查找控件而不用写递归的代码。请看下面代码,注意”$”的使用:
复制ASPX代码保存代码
<form id="form1" runat="server" DefaultFocus="formVw$txtName">
<div>
<asp:FormView ID="formVw" runat="server">
<ItemTemplate>
Name:
<asp:TextBox ID="txtName" runat="server"
Text='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
</ItemTemplate>
</asp:FormView>
</div>
</form>
这个小技巧也可以用在服务器端的使用FindControl()函数时:
复制C#代码保存代码
TextBox tb = this.FindControl("form1$formVw$txtName") as TextBox;
if (tb != null)
{
}
5、强类型访问跨页提交的控件 这个比其他的要内容多一点,但是很有用。ASP.NET2.0引入了交叉回发的概念使得一个页面可以将信息回发到另一个不同的页面,可以将button控件的PostBackUrl属性设置为接受回发数据的页面来完成。一般的,回发的数据可以象前一页那样做一些事情。但是,如果你要获得前一页制定控件的属性就需要一个cast(),如果你给引起回发的code-behide页面添加了一个公共属性,你就可以直接以强类型的方式添加PreviousPageType来指向引起回发的页面从而能够访问那个属性。
如果有一个页面Default.aspx,他有一个公共属性来返回此页面上一个TextBox,数据回发目的页(SearchResults.aspx)可以以强类型的方式(不需要FindControl()方法),在页面的顶部添加:
复制ASPX代码保存代码
<%@ PreviousPageType VirtualPath="Default.aspx" %>
这样,SearchResults.aspx中代码就可以以强类型的方式访问Default.aspx的TextBox。下面的例子假定Default.aspx定义的属性名为SearchTextBox:
复制C#代码保存代码
TextBox tb = PreviousPage.SearchTextBox;
PreviousPageType还有一个TypeName属性,你可以定义一个基本类型,一个或多个页面从此类型继承下来,使得这种技术可以在多页面上使用。PreviousPage.IsCrossPagePostBack可以判断是否为垮页提交。
对于跨页提交的补充: 在ASP.NET1.X版本中,页面都是提交到自己本身,并不能方便的指定需要提交的目的页面。例如FirstPage.aspx中的button只能提交到FirstPage.aspx,而不能提交到SecondPage.aspx。很多时候,ASP.NET1.X这样工作方式使我们的开发方式受到不少限制。熟悉ASP/JSP/PHP的朋友大概很不习惯,因为以前经常使用的提交方式突然无法使用,虽然也有解决这个问题的方法(欲详细了解的读者可去微软网站收看webcast),可是过程太烦琐,不甚方便。令我们高兴的是,ASP.NET2.0中有了跨页面提交的简单方法。可在第一个页面中的button添加PostBackUrl属性设置为接受提交的页面,并且这个页面增加PreviousPageType指令,若要是目标页面在新窗口中打开则可以在源页面<form>标记增加target=’_blank’属性。
6、强类型访问母版页的控件 PreviousPageType指令并不是唯一的可以强类型访问控件的方法。如果在母版页中定义了一个公共属性,并且想要以强类型的方式访问它,那么就可以在页面顶部添加MasterType指令(注意:MasterType指令同PreviousPageType一样允许定义一个TypeName)
复制ASPX代码保存代码
<%@ MasterType VirtualPath="MasterPage.master" %>
你可以在内容页书写如下的代码来访问目标母版页的属性:
复制C#代码保存代码
this.Master.HeaderText = "Label updated using MasterType directive with VirtualPath attribute.";
7、Validationgroups验证组 一个页中可能有多个控件和多个按钮。当其中的一个按钮被点击后想要特定的validator被激发而不是页面中的所有validator。在ASP.NET1.1中除了hackcode没有更好的办法。ASP.NET2.0中给所有的validator控件和按钮(button、linkbutton等等)增加了ValidatorGroup属性,就可以轻松地解决这个问题。如果在页面中有一个TextBox并且紧挨着他有一个RequiredFieldValidator和Button控件,可以将RequiredFieldValidator和Button的ValidationGroup属性设置成一样的值从而使得点击button时只触发这个RequiredFieldValidator的validor,任何没有定义在ValidationGroup内的其他的validator都会被忽略。看下例:
复制ASPX代码保存代码
<form id="form1" runat="server">
Search Text: <asp:TextBox ID="txtSearch" runat="server" />
<asp:RequiredFieldValidator ID="valSearch" runat="Server"
ControlToValidate="txtSearch" ValidationGroup="SearchGroup" />
<asp:Button ID="btnSearch" runat="server" Text="Search"
ValidationGroup="SearchGroup" /> .
Other controls with validators and buttons defined here
</form>
分享到:
相关推荐
通过探索这些项目的设计和代码,读者可快速掌握使用ASP.NET 2.0开发应用程序的技巧,从空白开始创建自己的网站,或在自己开发的网站中重用这些项目提供的功能。本书共分为12章,每章通过一个项目实现一种常见的网站...
ASP.NET 2.0网络编程自学手册 (版本是低了点,但是有些函数的应用对OOP-面向对象的有些思想还是有些启发作用) ASP.NET 2.0 是 Microsoft 公司推出的 Web 开发平台,也是目前最先进、特征最丰富、功 能最...
本书是一本ASP.NET 2.0 综合开发参考手册,书中几乎囊括了ASP.NET开发Web应用程序的全部知识,同时在...书中各部分技术既相互独立又相互联系,将逐步引导读者深入学习并掌握ASP.NET 2.0的编程知识、方法和编程技巧。
本书讲解了一些具体示例并演示了很多现实场景和实用技巧,而且通过大量的示例和解释,以及每章末尾的练习题,使读者可以由浅入深地学习ASP.NET 2.0中的新技术,从而进一步提高数据库开发技能。 本书适合于需要...
Asp.net2.0 提供了一种可以让网站在多种语言版本之间切换的方法。通过本课的学习,听众可以了解到如何使自己的网站资源自由变幻,并快速国际化。 • 开始时间: 2005-12-5 14:30:00 • 技术等级: Level 200 • 系列: ...
ASP.NET2.0O数据库开发经典案例光盘 简介:本书根据软件工程的设计思想,基于ASP.NET 2.0核心组件技术,使用Visual c#2005/SQL Server 2005(SQLEXPRESS)编程语言和数据库管理系统,以小区物业管理系统、学校教务...
ASP.NET 2.0 应用开发小技巧ASP.NET 2.0 应用开发小技巧ASP.NET 2.0 应用开发小技巧ASP.NET 2.0 应用开发小技巧ASP.NET 2.0 应用开发小技巧ASP.NET 2.0 应用开发小技巧
ASP.NET 2.0快速入门(9):ASP.NET 2.0 数据绑定高级技巧
ASP.NET 2.0快速入门(7):ASP.NET 2.0 数据绑定的基本技巧
书中各部分技术既相互独立又相互联系,将逐步引导读者深入学习并掌握ASP.NET 2.0的编程知识、方法和编程技巧。 本书附有配套光盘。光盘提供了书中示例和典型应用实例的全部源代码,所有源代码都经过精心调试,在...
ASP.NET 2.0快速入门之ASP.NET 2.0 数据绑定高级技巧
ASP.net2.0网站开发技巧参考大全ASP.net2.0网站开发技巧参考大全ASP.net2.0网站开发技巧参考大全
ASP.NET 2.0开发技巧
本书共分为14章,从搭建ASP.NET Web应用程序开发环境开始,首先介绍了C#语言的编程基础知识和常用技巧, 然后介绍了ASP.NET 2.0的基本开发技术,如服务器控件、ADO.NET、ASP.NET基本对象、站点导航等, 并使用这些...
深度挖掘.NET Framework 2.0(9):.NET 2.0对未处理异常的处理以及跟踪技巧
ASP .NET 2.0 超级编程技巧
ASP.NET+2.0+数据绑定高级技巧.pdf 感觉还不错的说