ASP.NET 2.0 中收集的小功能点(转)
程序员文章站
2022-05-26 11:14:09
1.asp.net 2.0中的maxpagestatefieldlength 属性 在asp.net 2.0中,可以强制对viewstate进行分段传输了,使用的是page...
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为命名空间就可以了。
在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为命名空间就可以了。
上一篇: ASP.NET编程中的十大技巧第1/2页
下一篇: PHP折半(二分)查找算法实例分析