123.aspx
----------------------------------------------------------
<%@ language=c# inherits="Example1" src="myexample1.cs" %>
<html>
<head>
<title>
My Example
</title>
</head>
<body>
<form runat=server>
<asp:button id=btn1 text="Click Me"  OnClick="btn_Click" runat=server />
<asp:label id=lbl runat=server />
</form>
</body>
</html>myexample1.cs
--------------------------------------------------------------------------
using System;
using System.Web.UI;
using System.Web.UI.WebControls;public class Example1 : System.Web.UI.Page
{
    public Button btn;
    public Label  lbl;
    
    public void btn_Click(object sender , EventArgs e)
    {
        lbl.Text="The Button Is Clicked";
    }
}以上两文件是在记事本中编辑。
很简单,就是一个代码分离,希望你有用!

解决方案 »

  1.   

    可是,我看到PetShop里面控件都是没有on...属性的.
    它是通过:
    private void InitializeComponent()
    {    
      this.btnSubmit.Click += new System.Web.UI.ImageClickEventHandler(this.btnSubmit_Click);
      this.Load += new System.EventHandler(this.Page_Load);}
    来建立事件处理程序的.
      

  2.   

    a_hui123(hui)你好!不错,这是采用一种叫“订阅”的概念,以
    this.btnSubmit.Click += new System.Web.UI.ImageClickEventHandler(this.btnSubmit_Click);
    为例,是将this.btnSubmit_Click函数订阅为this.btnSubmit.Click 事件,这是一种更为彻底的代码分离,即实现组织分离也实现了逻辑分离,还可以动态的用“-=”运算符取消这种订阅,就可以使代码更灵活,不知我这样说你觉得清楚点了吗?你也可以自己改一下!
      

  3.   

    非常感谢htjuw(七月),我试过,但无法捕捉到事件, 你能提供这样的例子吗?
    我看到有的书上说要成dll 放到bin子目录下,是否这样?
      

  4.   

    你看一下这个例子!
    12.aspx
    =============================================================<%@ Page Inherits=Example Src="12code.cs" %>
    <html>
    <form runat=server>
      <asp:button id=btnClick runat=server Text="Click Me" />
      <asp:Label id=lblState runat=server />
     </form>
    </html>
    12code.cs
    ====================================================================
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    public class Example:Page
    {
    public Label lblState;
    public Button btnClick;
    public void Page_Load(object sender, EventArgs e)
    {
    btnClick.Click += new EventHandler(btnClick_Click);
    }
    public void btnClick_Click(object sender,EventArgs e)
    {
    lblState.Text="Button is clicked";
    }
    }
    用btnClick.Click += new EventHandler(btnClick_Click);语句订阅了btnClick.Click事件,可以通过-=来取消订阅,你可以自己试试看,有一点需要注意就是订阅要在事件发生之前!