在你的aspx文件头加入:
<%@ Register TagPrefix="Custom" TagName="控件名" Src="..\Template\自定义控件.ascx" %>
在需要使用的地方:
<CUSTOM:HEADER id="控件名" runat="server"></CUSTOM:HEADER>就可以了

解决方案 »

  1.   

    首先更正楼主的一个术语错误,.ascx文件应当称为“用户控件(UserControl)”,而不是“自定义控件(CustomControl)”。
    假设你的用户控件加入页面后ID为myUserControl,你要访问其中的TextBox UserNameBox,则可以这样:TextBox unbox = (TextBox)this.myUserControl.FindControl("UserNameBox");你可以查查MSDN,看看FindControl方法的具体用法。
      

  2.   

    如果我是在用的拖放到aspx页面的方式进行放置的,在后台.cs代码编译时会报this.myUserControl是没有这个用户控件的定义,是在在后台定义吗还是需要设置什么
      

  3.   

    要在后台自己手工定义,或者在页面上右击放好的用户控件,然后选择“作为服务器控件运行”,Visual Studio .NET会自动为你在后台代码中加入声明
      

  4.   

    我使用以下方法很好
    控件如下
    文件CusViewCtl.ascx内容如下
    ...
    public class CusViewCtrl : System.Web.UI.UserControl
    {  ...
      public event System.EventHandler OnVIP; //事件声明
     public string CusID //属性
     {
      get{return CustomerID.Text ;  }
      set{CustomerID.Text=value; }
     }
     public  bool IsVIP() //对外的方法
     {
      if(OnVIP!=null) //触发事件
       OnVIP(this,null);
      return true;
     }
     ...
    }引用控件如下
    文件CustomerView.aspx内容如下
    ...
    <%@ Register TagPrefix="CusCtrl" TagName="CusView" Src="CusViewCtl.ascx" %>
    ...
    <CUSCTRL:CUSVIEW id="CusViewCtrl1" runat="server"></CUSCTRL:CUSVIEW>
    ...文件CustomerView.aspx.cs内容如下
    public class CustomerView : System.Web.UI.Page
    {
    ...
     protected CusViewCtrl CusViewCtrl1;//填加变量,变量名与前面控件的ID名相同
    ...
    override protected void OnInit(EventArgs e)
    {
     InitializeComponent();
     this.CusViewCtrl1.OnVIP+=new System.EventHandler(this.CusViewCtrl1_OnVIP );//设置处理事件
    ...
    private void CusViewCtrl1_OnVIP(object sender, System.EventArgs e)//处理事件函数
    {
     CustomerID.Text =CusViewCtrl1.CusID; //取属性
    }
    ....
    }