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为命名空间就可以了。
在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为命名空间就可以了。
<script type="text/javascript"> google_ad_client = "pub-8527320164371593"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; //2006-11-09: asp.net google_ad_channel = "8786117784"; google_language = 'en'; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>