想实现如下功能:将  多个控件 如: buton ,都有不同 点击事件如何封装在一起, 生成dll文件,供别人调用是不是可以 都放在Panel 中,如何放呢?请 高手们 指教···

解决方案 »

  1.   

    也可以参考一下Microsoft Ajax Library客户端组件编程模型。关键字:Sys.Component, Sys.UI.Behavior, Sys.UI.Control.
      

  2.   

    楼上的可以考虑。
    我现在用了 System.Web.UI.WebControls.CompositeControl
    在 CreateChildControls 方法中 添加需要的控件及相关事件,添加上去可以调用,但各个控件的位置
    不能按照意愿去摆放。假如创建控件  先不加进页面,在 Render 方法中,各个控件在需要的位置进行输出,但相关事件就不知道消失了 不知道怎么加上去··
      

  3.   

    两种方式:
    1.简单实现,使用用户控件方式实现,直接使用web应用程序开发,编写用户控件并把用户控件当做内嵌资源直接嵌入到系统中,然后编译成独立的dll分发出去就成2.复杂实现,使用标准自定义服务器控件方式完成,不过这种方式要求就比较高了我的建议是如果你没把握快速开发标准服务器控件,基于性价比的原因,请选择第1种方式开发。第一种方式的参考资料:Embedded UserControls: Revisited
    http://www.codeproject.com/KB/user-controls/EmbeddedUserControl.aspx
      

  4.   

     public class Class1 : CompositeControl
        {
            private Button bt1;
            private Label lab1;
            protected override void CreateChildControls()
            {
                Controls.Clear();
                lab1 = new Label();
                lab1.Text = "信息";
                lab1.ID = "Label1";
                this.Controls.Add(lab1);            bt1 = new Button();
                bt1.Text = "添加";
                bt1.ID = "Button1";
                bt1.Click += new EventHandler(bt1_Click);
                this.Controls.Add(bt1);
                base.CreateChildControls();
            }        void bt1_Click(object sender, EventArgs e)
            {
                //throw new NotImplementedException();
                lab1.Text = "test";
            }
            protected override void RecreateChildControls() { EnsureChildControls(); }         protected override void Render(System.Web.UI.HtmlTextWriter writer)
            {
                writer.Write("<div>");
                lab1.RenderControl(writer);
                bt1.RenderControl(writer);
                writer.Write("</div>");
                base.Render(writer);
            }    }在页面调用  会出现 两个 相同的BUTTON 和 Label   该怎么处理不让他重复显示?