我创建了一个基于TextBox的用户控件,在这个用户的Render事件中,我动态建立了一个Label.但当我在页面中放置了这个用户控件后,在Page_Load事件用FindControl中却找不到那个Label,哪位大侠能帮我解答一下吗?

解决方案 »

  1.   

    render 好向在 page_load 后面发生的,你不可能找到!
      

  2.   

    public class LabeledTextBox: TextBox
    {
    private Label label;
    public LabeledTextBox()
    {
    this.label = new Label();
    }
    }
      

  3.   

    另外并不是这简单就可以找到的,还要把label作为控件的子control插入其Controls数组中。LabeledTextBox应该标识为实现了INamingContainer接口
      

  4.   

    看看这段代码,一定对你有帮助的:
    //定义控件包含的自控件
    protected override void CreateChildControls() 
    {
    FileInput = new System.Web.UI.HtmlControls.HtmlInputFile();
    FileInput.EnableViewState =true;
    FileInput.Name = "_UploadFile" ;
    FileInput.ID = "_UploadFile";
    Controls.Add(FileInput); System.Web.UI.WebControls.Button Button1 = new System.Web.UI.WebControls.Button();
    Button1.ID = "_BtnSubmit";
    Button1.Text="上传";
    Controls.Add(Button1); //添加控件的事件
    Button1.Click += new EventHandler(this.ButtonClicked);
    }