1.asp.net 2.0中的MaxPageStateFieldLength 屬性
在asp.net 2.0中,可以強制對viewstate進行分段傳輸了,使用的是Page.MaxPageStateFieldLength 屬性,可以設置viewstate中,每個頁面狀態字段的最大字節數。格式如下,要在WEB.CONFIG文件裡設置的:
<pages maxPageStateFieldLength="5" />
其中,將設置把viewstate為不超過5字節,如果實際的viewstate超過該值,將進行分段傳輸,但每個分段的大小依然不超過maxPageStateFieldLength中的設置值, 默認設置值為-1,表示不對其進行分段傳輸。
2.Click button only once in asp.net 2.0
1 protected void Page_Load(object sender, EventArgs e)
2 {
3 PostBackOptions options = new PostBackOptions(Button1,string.Empty);
4
5 StringBuilder sb = new StringBuilder();
6 if (Button1.CausesValidation && this.GetValidators(Button1.ValidationGroup).Count > 0)
7 {
8 options.ClientSubmit = true;
9 options.PerformValidation = true;
10 options.ValidationGroup = Button1.ValidationGroup;
11
12 sb.Append("if (typeof(Page_ClientValidate) == 'function')");
13 sb.Append("if(Page_ClientValidate(\"" + Button1.ValidationGroup + "\")==false) return false;");
14 }
15 if (!string.IsNullOrEmpty(Button1.PostBackUrl))
16 options.ActionUrl = HttpUtility.UrlPathEncode(Button1.ResolveClientUrl(Button1.PostBackUrl));
17
18 sb.Append("this.disabled = true;");
19 sb.Append(ClientScript.GetPostBackEventReference(options));
20 sb.Append(";");
21 Button1.Attributes.Add("onclick", sb.ToString());
22 }
3.asp.net 2.0中得到sqldatasource返回的行數
在asp.net 2.0中,gridview是和sqldatasource控件綁定的,那麼如何得到sqldatasource返回的記錄的行數呢?比如sqldatasource控件中用select * from ....,如何返回其記錄行數?在.net 2.0中,可以通過sqldatasource的OnSelected事件實現,並且對select事件SqlDataSourceStatusEventArgs參數中的AffectedRows屬性設置一下就可以了,具體核心代碼如下:
protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
totalRows.Text = e.AffectedRows.ToString();
}
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=(local);Initial Catalog=Northwind;user id=sa;password=123456;" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName] FROM [Customers]" OnSelected="SqlDataSource1_Selected"></asp:SqlDataSource>
4.在asp.net 1.1中,當要在page_load頁面中,設置某個控件為默認的焦點按鈕(也就是默認焦點是在這個控件上的),可能要用到javascript的代碼,而在ASP.NET 2.0中,不用這些麻煩了,在form代碼中,使用
defaultbutton和 defaultfocus屬性就可以了,比如
<form id="Form1"
defaultbutton="BtnSubmit"
defaultfocus="TextBox1"
runat="server">
則在頁面加載時,默認的button按鈕時btnsubmit,焦點默認就在texbox1上了
5.asp.net 2.0中的彈出對話框
在asp.net 1.1中,要做1個彈出的對話框的話,一般是在服務端的代碼中這樣寫:
btnClick.Attributes.Add("onclick", "return confirm('Are you sure?');");
現在在ASP.NET 2.0中,只要使用客戶端的代碼就可以拉,新多了個onclientclick,這樣寫
<asp:button id="btnClick" runat="server" OnClientClick="return confirm('Are you sure?');" text="Button"></asp:button>
5.自定義的頁面控件,
比如在ASP。NET 1。1中,要聲明自定義的頁面控件,
通常要在用到的每頁都要加入register prefix=........這樣的,很麻煩,而在asp.net 2.0中,如果你確定一個頁面自定義控件要在
整個項目中用到,只需要在WEB.CONFIG中加入
<system.web>
<pages>
<controls>
<add tagPrefix="prefixname" namespace="namespacename "/>
</controls>
</pages>
</system.web>
其中prefixname為控件的標識,namespace為命名空間就可以了。