• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
安安的BLOG
安安目前专注电子商务解决方案^_^
博客园    首页    新随笔    联系   管理    订阅  订阅

ASP.NET 2.0 中收集的小功能点

ADO.NET 2.0 中的ConnectionStringBuilder
对于所有开发人员来说,写连接字符串永远不是一件困难的事,但却是一件很头痛的事情。

看ADO.NET 2.0如何解决的
SqlConnectionStringBuilder connbuilder = new SqlConnectionStringBuilder();
connbuilder.DataSource = "localhost";
connbuilder.UserID = "someuser";
connbuilder.Password = "somepassword";
SqlConnection c = new SqlConnection (connbuilder.ConnectionString);
c.Open();

它至少解决了下面几个问题
1、不用因为记不住种类繁多的连接字符串而烦恼了.。
2、绝对不会写错连接字符串

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为命名空间就可以了。
posted @ 2006-05-26 11:18  安安  阅读(216)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3