呵呵,说来惭愧,第一次做这种服务器控件编程,基本原理我比较清楚了,但对于子控件的事件仍然有些不解。
首先,我现在要做一个服务器控件,用于上传文件,要求就是控件的用户不需要写一行代码,就完成上传。他们需要做的,仅仅是设置一下属性。我在我的服务器控件里面生成了HtmlInputFile和Button,显示上没有什么问题,但是我按下Button后一点反应也没有,就Postback了。大家看看我这段写得对不对:
Button uploadButton = new Button();
HtmlInputFile file = new HtmlInputFile();private void CreateControls()
{
    button.Text = "Upload";
    button.Click += new EventHandler(UploadFile);
    this.Controls.Add(file);
    this.Controls.Add(uploadButton);
}private void UploadFile(object sender,System.EventArgs e)
{
///...
}protected override void CreateChildControls()
{
    this.EnsureChildControls();
    base.CreateChildControls();
    CreateControls();
}------------------------------------------------
我现在并不要暴露事件给用户,只是希望在内部处理这个事件,但可能我这个Button.Click事件绑定用的不对,希望有经验的朋友能否帮个忙?谢谢了!

解决方案 »

  1.   

    try the following:public class YourControl : WebControl, INamingContainer
    {
    Button uploadButton = new Button();
    HtmlInputFile file = new HtmlInputFile();private void UploadFile(object sender,System.EventArgs e)
    {
    ///...
    }protected override void CreateChildControls()
    {
        button.Text = "Upload";
        button.ID = "btnUpload";
        button.Click += new EventHandler(UploadFile);
        file.ID = "fileUpload";
        this.Controls.Add(file);
        this.Controls.Add(uploadButton);}
    }
      

  2.   

    Thank you very much :)