ASP.NET 2.0 中收集的小功能點
來源:互聯網
上載者:User
asp.net 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為命名空間就可以了。 <controls> <add tagPrefix="prefixname" namespace="namespacename "/> </controls> </pages></system.web>
其中prefixname為控制項的標識,namespace為命名空間就可以了。