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

推荐订阅源

Project Zero
Project Zero
GbyAI
GbyAI
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
小众软件
小众软件
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 【当耐特】
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
O
OpenAI News
V
V2EX
博客园 - 三生石上(FineUI控件)
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
H
Help Net Security
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tenable Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cisco Talos Blog
Cisco Talos Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Hacker News: Ask HN
Hacker News: Ask HN
S
Security @ Cisco Blogs
S
Securelist
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
雷峰网
雷峰网
V2EX - 技术
V2EX - 技术

博客园 - 残叶

Enum视为位域 ASP.NET 2.0 HttpHandler实现生成图片验证码(转) Asp.net 2.0生命周期 ASP.NET 2.0 的 App_Offline.htm 联合使用抽象类和接口 C#中抽象类和接口的区别 C#静态构造函数 封装K2.net 2003中的K2ROM 跨页面提交数据的方法 页面的重定向 (转)Asp.net 中 Get和Post 的用法 (转)关于ASP.net运行流程 O/R Mapping (Object-Relation Mapping,对象关系映射) 网络主机名与IP C#发送Email方法总结 @@IDENTITY与SCOPE_IDENTITY() .NET和SQL Server中“空值”辨析 Transactions 回家了
Asp.net开发小技巧
残叶 · 2007-06-29 · via 博客园 - 残叶

一.多个控件同用一个事件,从而可让代码更清晰,更简单,可维护性强
  如下:多个Button共用一个事件处理的2种方法
  1.利用OnCommand事件

<body>
    
<form id="form1" runat="server">
        
<div>
            
<asp:Button ID="Button1" runat="server" Text="测试1" CommandName="1" OnCommand="Button_Click" />
            
<asp:Button ID="Button2" runat="server" Text="测试2" CommandName="2" OnCommand="Button_Click" />
            
<asp:Button ID="Button3" runat="server" Text="测试3" CommandName="3" OnCommand="Button_Click" />
        
</div>
    
</form>
</body>

protected void Button_Click(object sender, CommandEventArgs e)
    
{
        
switch (e.CommandName)
        
{
            
case "1":
                Response.Write(
"你点击了第一个Button");
                
break;
            
case "2":
                Response.Write(
"你点击了第二个Button");
                
break;
            
case "3":
                Response.Write(
"你点击了第三个Button");
                
break;
        }

    }

  2.利用OnClick事件

<body>
    
<form id="form1" runat="server">
        
<div>
            
<asp:Button ID="bt1" runat="server" Text="测试1" CommandName="1" OnClick="Button_Click" />
            
<asp:Button ID="bt2" runat="server" Text="测试2" CommandName="2" OnClick="Button_Click" />
            
<asp:Button ID="bt3" runat="server" Text="测试3" CommandName="3" OnClick="Button_Click" />
        
</div>
    
</form>
</body>

protected void Button_Click(object sender, EventArgs e)
    
{
        Button bt 
= sender as Button;
        
switch (bt.ID)
        
{
            
case "bt1":
                Response.Write(
"你点击了第一个Button");
                
break;
            
case "bt2":
                Response.Write(
"你点击了第二个Button");
                
break;
            
case "bt3":
                Response.Write(
"你点击了第三个Button");
                
break;
        }

    }

二. 页面加载后设置默认焦点到控件上

<form id="frm" DefaultFocus="txtUserName" runat="server">
</form>

三. 用户点击"Enter"键时触发默认按钮的Click事件

<form id="frm" DefaultButton="btnSubmit" runat="server">
</form>

四. 简单的寻找固定的控件
      在页面的控件中按层次寻找控件很痛苦,但是如果你知道控件怎样固定在页面中,就可以用简写”$”来查找控件而不用写递归的代码。请看下面代码,注意”$”的使用:

<form id="form1" runat="server" DefaultFocus="formVw$txtName">
    
<div>
        
<asp:FormView ID="formVw" runat="server">
            
<ItemTemplate>
                Name: 
                
<asp:TextBox ID="txtName" runat="server" 
                    Text
='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
            
</ItemTemplate>
        
</asp:FormView>
    
</div>
</form>

这个小技巧也可以用在服务器端的 使用FindControl()函数时:

TextBox tb = this.FindControl("form1$formVw$txtName"as TextBox;
if (tb != null)
{
    
//Access TextBox control
}

五. 强类型访问跨页提交的控件

      ASP.NET 2.0引入了交叉回发的概念使得一个页面可以将信息回发到另一个不同的页面,可以将button控件的PostBackUrl属性设置为接受回发数据的页面来完成。一般的,回发的数据可以象前一页那样做一些事情。但是,如果你要获得前一页制定控件的属性就需要一个cast(),如果你给引起回发的code-behide页面添加了一个公共属性,你就可以直接以强类型的方式添加PreviousPageType来指向引起回发的页面从而能够访问那个属性。

      果有一个页面Default.aspx,他有一个公共属性来返回此页面上一个TextBox,数据回发目的页(SearchResults.aspx)可以以强类型的方式(不需要FindControl() 方法),在页面的顶部添加:

<%@ PreviousPageType VirtualPath="Default.aspx" %>

这样,SearchResults.aspx中代码就可以以强类型的方式访问Default.aspx的TextBox。下面的例子假定Default.aspx定义的属性名为SearchTextBox:

TextBox tb = PreviousPage.SearchTextBox;

六. 强类型访问母版页的控件
        PreviousPageType指令并不是唯一的可以强类型访问控件的方法。如果在母版页中定义了一个公共属性,并且想要以强类型的方式访问它,那么就可以在页面顶部添加MasterType指令(注意:MasterType指令同PreviousPageType一样允许定义一个TypeName)

<%@ MasterType VirtualPath="MasterPage.master" %>

你可以在内容页书写如下的代码来访问目标母版页的属性:

this.Master.HeaderText = "Label updated using MasterType directive with VirtualPath attribute.";