1、在CallBack之后保持滚动条的位置

在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行。为了不停留在想要得行,页面会重新加载并且必须在顶部向下滚动。在Asp2.0中,只需要简单的在页面的属性中加入MaintainScrollPostionOnPostBack属性即可:

1<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeFile="" Inherits="" %>


2、页面加载后设置默认焦点到控件上

这也是一个非常简单的例子,不需要javascript的辅助即可完成。如果在页面中有一两个textbox,为什么要让用户去点击textbox来开始输入数据呢?是不是可以能够让光标已经停留在textbox进而可以输入数据呢?使用HtmlForm控件的DefaultFocus属性就可以轻易的做到:

1<form id="frm" DefaultFocus="txtUserName" runat="server">
2</form>

3、用户点击“Enter”键时触发默认按钮的click实践。

在Asp1.1中,想要使用户点击“Enter”键就能关联到一个button的服务器段的click事件需要借助于javascript,这是很痛苦的。幸好,现在可你使用HtmlForm控件的DefaultButton属性来设置。这个属性也可以设置到Panel控件上,当用户移动到页面中不同的Panel上,点击enter键来触发不同的button控件的click事件。

1<form id="frm" DefaultButton="btnSubmit" runat="server">
2</form>

4、简单的寻找固定的控件。

在页面的控件中按层次寻找控件很痛苦,但是如果你知道控件怎样固定在页面中,就可以用简写”$”来查找控件而不用写递归的代码。请看下面代码,注意”$”的使用:

1<form id="form1" runat="server" DefaultFocus="formVw$txtName">
2    <div>
3        <asp:FormView ID="formVw" runat="server">
4            <ItemTemplate>
5                Name:
6                <asp:TextBox ID="txtName" runat="server"
7                    Text='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
8            </ItemTemplate>
9        </asp:FormView>
10    </div>
11</form>

这个小技巧也可以用在服务器端的 使用FindControl()函数时:

1TextBox tb = this.FindControl("form1$formVw$txtName") as TextBox;
2if (tb != null)
3...{
4    //Access TextBox control
5}

5、强类型访问跨页提交的控件

这个比其他的要内容多一点,但是很有用。ASP.NET 2.0引入了交叉回发的概念使得一个页面可以将信息回发到另一个不同的页面,可以将button控件的PostBackUrl属性设置为接受回发数据的页面来完成。一般的,回发的数据可以象前一页那样做一些事情。但是,如果你要获得前一页制定控件的属性就需要一个cast(),如果你给引起回发的code-behide页面添加了一个公共属性,你就可以直接以强类型的方式添加PreviousPageType来指向引起回发的页面从而能够访问那个属性。

如果有一个页面Default.aspx,他有一个公共属性来返回此页面上一个TextBox,数据回发目的页(SearchResults.aspx)可以以强类型的方式(不需要FindControl() 方法),在页面的顶部添加:

1<%@ PreviousPageType VirtualPath="Default.aspx" %>

这样,SearchResults.aspx中代码就可以以强类型的方式访问Default.aspx的TextBox。下面的例子假定Default.aspx定义的属性名为SearchTextBox:

1TextBox tb = PreviousPage.SearchTextBox;

对于跨页提交的补充:

在ASP.NET 1.X 版本中,页面都是提交到自己本身,并不能方便的指定需要提交的目的页面。例如FirstPage.aspx中的button只能提交到 FirstPage.aspx,而不能提交到SecondPage.aspx。很多时候,ASP.NET 1.X这样工作方式使我们的开发方式受到不少限制。熟悉ASP/JSP/PHP的朋友大概很不习惯,因为以前经常使用的提交方式突然无法使用,虽然也有解决这个问题的方法(欲详细了解的读者可去微软网站收看webcast),可是过程太烦琐,不甚方便。令我们高兴的是,ASP.NET 2.0中有了跨页面提交的简单方法。可在第一个页面中的button添加PostBackUrl属性设置为接受提交的页面,并且这个页面增加PreviousPageType 指令,若要是目标页面在新窗口中打开则可以在源页面<form>标记增加target=’_blank’属性。

6、强类型访问母版页的控件

PreviousPageType指令并不是唯一的可以强类型访问控件的方法。如果在母版页中定义了一个公共属性,并且想要以强类型的方式访问它,那么就可以在页面顶部添加MasterType指令(注意:MasterType指令同PreviousPageType一样允许定义一个TypeName)
复制ASPX代码保存代码
你可以在内容页书写如下的代码来访问目标母版页的属性:

1<%@ MasterType VirtualPath="MasterPage.master" %>

你可以在内容页书写如下的代码来访问目标母版页的属性:

1this.Master.HeaderText = "Label updated using MasterType directive with VirtualPath attribute.";

7、Validation groups验证组
一个页中可能有多个控件和多个按钮。当其中的一个按钮被点击后想要特定的validator被激发而不是页面中的所有validator。在ASP.NET 1.1中除了hack code没有更好的办法。ASP.NET 2.0中给所有的validator控件和按钮(button、linkbutton等等)增加了ValidatorGroup属性,就可以轻松地解决这个问题。如果在页面中有一个TextBox并且紧挨着他有一个RequiredFieldValidator 和Button控件,可以将RequiredFieldValidator和Button的ValidationGroup属性设置成一样的值从而使得点击button时只触发这个RequiredFieldValidator的validor,任何没有定义在ValidationGroup内的其他的validator都会被忽略。看下例:

1<form id="form1" runat="server">
2    Search Text: <asp:TextBox ID="txtSearch" runat="server" />
3                    <asp:RequiredFieldValidator ID="valSearch" runat="Server"
4    ControlToValidate="txtSearch" ValidationGroup="SearchGroup" />
5                    <asp:Button ID="btnSearch" runat="server" Text="Search"
6        ValidationGroup="SearchGroup" />  .
7        Other controls with validators and buttons defined here
8</form>

转载于:https://blog.51cto.com/tears/109125

你可能已经知道或者不知道的ASP.NET 2.0技巧(转载)相关推荐

  1. 10-N个你可能不知道的Mixly软件操作小技巧 | Mixly技巧系列

    Mixly 是由北师大米思齐团队开发的图形化编程软件,自发布以来深受国内创客圈的喜爱.Mixly 编程软件采用图形化编程,不用记代码,只需要拖拽.简单设置,就能让你快速完成创意电子编程. 本专栏系列课 ...

  2. 十个你可能不知道的CloudFlare免费CDN加速技巧

    十个你可能不知道的 CloudFlare 免费 CDN 加速技巧 - SSL\DDOS\Cache. 要说免费 CDN 服务的 "大牛" 恐怕就只能当数 CloudFlare 了. ...

  3. Vue.js 父子组件通信的十种方式;告诉世界前端也能做 AI;你可能不知道的14个JavaScript调试技巧...

    记得点击文章末尾的"阅读原文"查看哟~ 下面先一起看下本周的摘要吧~ 想了解老用户如何参与阿里云双十一1折拼团特惠主机的,可以看第二条推送,文中提供了两种方法~,一起看看本周有哪些 ...

  4. ipad分屏功能怎么开启_小白必看,自己整理的 10 个你可能不知道的 iPad 系列使用小技巧...

    你手上拿着最新款的 iPad,但 iPad 一些及便捷又适用的操作小技巧你肯定或多或少不太清楚,所以趁着这个机会,我想把自己整理的 10 个你可能不知道的 iPad 系列使用小技巧告诉大家,让大伙也能 ...

  5. axure中出现小手_你所不知道的15个Axure使用技巧

    Axure 6.5已于4月18日发布,可直到上周我才发现,于是赶紧下载升级.等待下载的过程中,闲来无聊跑去看了Axure的版本历史,又浏览了一下官方的使用教程,忽然发现Axure竟如此博大精深,自己平 ...

  6. 在html页面中的js如何调试,你可能不知道的14个JavaScript调试技巧

    以更快的速度和更高的效率调试你的 JavaScript 了解你的工具可以在完成任务的过程中发挥重大作用.尽管传言 JavaScript 难以调试,但是如果你掌握了一些调试技巧,那么你将会花费更少的时间 ...

  7. 你所不知道的ASP.NET Core MVC/WebApi基础系列(二)

    前言 好久没冒泡了,算起来估计有快半年没更新博客了,估计是我第一次停更如此之久,人总有懒惰的时候,时间越长越懒惰,但是呢,不学又不行,持续的惰性是不行dei,要不然会被时光所抛弃,技术所淘汰,好吧,进 ...

  8. 您可能不知道的ASP.Net小技巧

    <!-- 页码和简介 --> 1.  在提交页面之后,保持滚动条的位置 可以在page指令上加上MaintainScrollPositionOnPostback指令 <%@ Page ...

  9. 交际中你所不知道的说话的12个技巧!

    1."有一说一"和"自以为是"不同,别把粗鲁当成真性情 与 他人相处,要遵循一个基本原则:己所不欲,勿施于人.你可以真挚地描述自己的感受,前提是不要带有攻击性, ...

最新文章

  1. BP神经网络算法推导
  2. 免费的源代码编辑器Notepad++ 7.6.2 发布
  3. python 控制qq_最必要的最小建议集:写给刚入门编程(python)的同学
  4. js 网页嵌套在div的方法
  5. java运用ascii实现动画效果_安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果...
  6. 要素集获取要素_Excel点文件转面要素
  7. presume_presume是什么意思_presume中文意思_presume英译汉_英汉词典
  8. 【库安装】windows下Python安装protobuf
  9. 交叉风帆行业调研报告 - 市场现状分析与发展前景预测
  10. struts2学习 - action - 1
  11. Java知多少(2)虚拟机(JVM)以及跨平台原理
  12. 我的Android进阶之旅------经典的大牛博客推荐(排名不分先后)!!
  13. Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg'
  14. 群晖python导股票数据_群晖系统中运行python爬虫程序
  15. 选中Excel单元格自动导入多个Excel worksheets
  16. feifeicms 人物标签调用
  17. PWA系列 - Web Push 技术
  18. 友情链接php模板,自定义友情链接页面模板
  19. 格力造车梦碎,终止筹划发行股份收购珠海银隆
  20. Android开发 报错: xxx does not have a NavController set on xxx

热门文章

  1. 牛客第七场 Sudoku Subrectangles
  2. 浅说 XSS 和 CSRF
  3. MongoDB 安全 checklist 及最优配置模板
  4. 类的静态成员变量和静态成员函数的使用方法三
  5. EXE 文件打不开的处理办法
  6. 前端开发之走进Vue.js
  7. POJ1564 Sum It Up(DFS)
  8. asp.net 生成下载word的两种方式
  9. 如何找到文件的家-打开文件对话框openFileDialog
  10. Web跨浏览器进程通信