|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)asp.net|技能1、在CallBack以后坚持转动条的地位
在Asp.Net1.1中,CallBack以后坚持转动条的地位是一件十分疾苦的事变,出格是页中有一个Grid而且想要编纂特定的行。为了一直留在想要得行,页面会从头加载而且必需在顶部向下转动。在Asp2.0中,只必要复杂的在页面的属性中到场MaintainScrollPostionOnPostBack属性便可:
<%@PageLanguage="C#"MaintainScrollPositionOnPostback="true"AutoEventWireup="true"CodeFile=""Inherits=""%>
2、页面加载后设置默许核心到控件上
这也是一个十分复杂的例子,不必要javascript的帮助便可完成。假如在页面中有一两个textbox,为何要让用户往点击textbox来入手下手输出数据呢?是否是能够可以让光标已停止在textbox进而能够输出数据呢?利用HtmlForm控件的DefaultFocus属性就能够容易的做到:
<formid="frm"DefaultFocus="txtUserName"runat="server">
</form>
3、用户点击“Enter”键时触发默许按钮的click理论。
在Asp1.1中,想要利用户点击“Enter”键就可以联系关系到一个button的服务器段的click事务必要借助于javascript,这是很疾苦的。幸亏,如今可你利用HtmlForm控件的DefaultButton属性来设置。这个属性也能够设置到Panel控件上,当用户挪动到页面中分歧的Panel上,点击enter键来触发分歧的button控件的click事务。
<formid="frm"DefaultButton="btnSubmit"runat="server">
</form>
4、复杂的寻觅流动的控件。
在页面的控件中按条理寻觅控件很疾苦,可是假如你晓得控件如何流动在页面中,就能够用简写”$”来查找控件而不必写递回的代码。请看上面代码,注重”$”的利用:
<formid="form1"runat="server"DefaultFocus="formVw$txtName">
<div>
<asp:FormViewID="formVw"runat="server">
<ItemTemplate>
Name:
<asp:TextBoxID="txtName"runat="server"
Text=<%#Eval("FirstName")+""+Eval("LastName")%>/>
</ItemTemplate>
</asp:FormView>
</div>
</form>
这个小技能也能够用在服务器真个利用FindControl()函数时:
TextBoxtb=this.FindControl("form1$formVw$txtName")asTextBox;
if(tb!=null)
{
//AccessTextBoxcontrol
}
5、强范例会见跨页提交的控件
这个比其他的要内容多一点,可是很有效。ASP.NET2.0引进了交织回发的观点使得一个页面能够将信息回发到另外一个分歧的页面,能够将button控件的PostBackUrl属性设置为承受回发数据的页面来完成。一样平常的,回发的数据能够象前一页那样做一些事变。可是,假如你要取得前一页制订控件的属性就必要一个cast(),假如你给引发回发的code-behide页面增加了一个大众属性,你就能够间接以强范例的体例增加PreviousPageType来指向引发回发的页面从而可以会见谁人属性。
假如有一个页面Default.aspx,他有一个大众属性来前往此页面上一个TextBox,数据回发目标页(SearchResults.aspx)能够以强范例的体例(不必要FindControl()办法),在页面的顶部增加:
<%@PreviousPageTypeVirtualPath="Default.aspx"%>
如许,SearchResults.aspx中代码就能够以强范例的体例会见Default.aspx的TextBox。上面的例子假定Default.aspx界说的属性名为SearchTextBox:
TextBoxtb=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)
<%@MasterTypeVirtualPath="MasterPage.master"%>
你能够在内容页誊写以下的代码来会见方针母版页的属性:
this.Master.HeaderText="LabelupdatedusingMasterTypedirectivewithVirtualPathattribute.";
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城市被疏忽。看下例:
<formid="form1"runat="server">
SearchText:<asp:TextBoxID="txtSearch"runat="server"/>
<asp:RequiredFieldValidatorID="valSearch"runat="Server"
ControlToValidate="txtSearch"ValidationGroup="SearchGroup"/>
<asp:ButtonID="btnSearch"runat="server"Text="Search"
ValidationGroup="SearchGroup"/>.
Othercontrolswithvalidatorsandbuttonsdefinedhere
</form>
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。 |
|