Asp.net 2.0中收集的小功能点
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"> 在asp.net 1.1中,要做1个弹出的对话框的话,一般是在服务端的代码中这样写: btnClick.Attributes.Add("onclick", "return confirm('Are you sure?');"); <controls> <add tagPrefix="prefixname" namespace="namespacename "/> </controls> </pages> </system.web> |