惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
B
Blog
腾讯CDC
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
L
LangChain Blog
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog

博客园 - Titans

一个想嫁有钱人的女孩得到的回复 ASP.NET 中执行 URL 重写 - Titans 在 ASP.NET 中执行 URL 重写 国外C#开源系统一览表 五蕴皆空 项目管理一些体会 职场好人缘的26个细节 试译Fowler的《更多企业应用架构模式》稿 小tips:asp.net 2.0中在gridview中使用DataFromatString C# String Library ASP.NET 2.0页面框架的几处变化 ADO.NET 2.0 大批量数据操作和多个动态的结果集 战将宣言 Titans:小天使 日历控件源码开放--适用于ASP.NET 1.1 爱的距离 华为的冬天 - Titans - 博客园 每件事都有它的道理 搜索引擎优化排名方法
ASP.NET 2.0 中收集的小功能点
Titans · 2006-09-25 · via 博客园 - Titans

为ASP.NET 2.0配置数据源
在ASP.NET 2.0中提供了大量的Provider,以及Master Page、Theme/Skin等新技术,而这些技术都需要有一个数据库的支持。而ASP.NET 2.0默认的是采用SQL Express,在实际开发中我们用的最多的还是Sql Server,因为我们要进行一定的配置。
下面简要叙述在ASP.NET 2.0中使用SQL Server 2K/2K5做支持数据库的步骤:

  1. 在Visuaol Studio 2005的命令行环境中执行命令:aspnet_regsql。该工具可以为ASP.NET 2.0在指定的SQL Server上建立或指定一个支持数据库,默认名字为aspnetdb
  2. 接下来需要修改配置文件,可以在通过修改$:WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config来实现,但修改machine.config文件并不是一个好的方法,好在ASP.NET 2.0提供了在Web.Config文件中修改的办法。
  3. 打开一个Web应用程序的Web.Config文件,添加如下配置节:

    <connectionStrings>
        
    <remove name="LocalSqlServer" />
        
    <add name="LocalSqlServer" connectionString="server=(local);trusted_connection=false;user id=sa;pwd=8848;database=aspnetdb" providerName="System.Data.SqlClient" />
    </connectionStrings>


    首先用remove去掉在machine.config中定义的LocalSqlSever连接配置,那个连接是指向本地安装的Sql Express的;然后再重新添加一个LocalSqlServer数据库连接指向想要设定的Sql Server服务器数据库。
  4. 然后在<system.web>节点中去配置一个默认的使用LocalSqlServer数据连接的Provider,如下:

    <system.web>
        
    <membership defaultProvider="SqlMembershipProvider">
          
    <providers>
            
    <add connectionStringName="LocalSqlServer" name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
          
    </providers>
        
    </membership>
    </system.web>


  5. 这样配置文件就OK了。可以通过在VS中点击Web Site菜单下的ASP.NET配置来进行测试是否已经成功。

VS 2005 现在对Web.config文件也支持智能感知(intellisense)了:

如果你的智能感知没出来,可能是因为名称空间的关系:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 只要把上面这句改为:
<configuration> 智能感知就可以出来了。


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
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中的弹出对话框

TreeView的无刷新页面展开子节点:
设置Treeview的EnableClientScript和PopulateNodesFromClient的属性设为"True",并在OnTreeNodePopulate事件代码中为该节点添加子节点。

<asp:TreeView ID="TreeView1" EnableClientScript="true" PopulateNodesFromClient="true" OnTreeNodePopulate="TreeView1_TreeNodePopulated" runat="server" >
</asp:TreeView>

    protected void TreeView1_TreeNodePopulated(object sender, TreeNodeEventArgs e)
    
{
        TreeNode currentNode 
= e.Node;

        
// 这里为currentNode添加子节点
    }

在服务器端代码中设置页面的缺省控件和缺省按钮:
asp.net 2.0的Page类增加了“Form”属性,设置Page.Form.DefaultButton和DefaultFocus为缺省按钮(输入控件)的UniqueID即可。

void Page_Init(object sender, EventArgs e)
{
    
this.Page.Form.DefaultFocus = TextBox1.UniqueID;
    
this.Page.Form.DefaultButton = Button1.UniqueID;
}

1\掩藏字段的处理:DataGrid可以将字段直接设置为Visible=false,可以通过Cell[x].Text取到值。 GridView这个功能失效了,可以使用运行时来设定该列为掩藏。处理RowDataBound事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   e.Row.Cells[5].Visible = false;
}
   2\ 获取所选列的数据:DataGrid可以直接通过所选行来获取,GridView同样的代码无法运行。GridView 可以通过GridViewRow来获取。BtnAudit是模版列中的按钮。
GridViewRow grdRow = (GridViewRow)btnAudit.Parent.Parent;

 string strId = grdRow.Cells[0].Text;
 string memberId = grdRow.Cells[5].Text;
  3\ 最终删除一条数据之前进行确认,这个可以使用摸版列,在摸版列中放置按钮控件,其中有一个客户端事件onclientclick,这里可以写确认处理javascript脚本.例如:
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnRefuse" runat="server" OnClick="btnRefuse_Click" Text="拒绝"  OnClientClick="return confirm(' 你真的要拒绝这个用户加入俱乐部?')"/>
                </ItemTemplate>
            </asp:TemplateField>