using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace CustControls
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:MyPageControl runat=server></{0}:MyPageControl>")]
    public class MyPageControl : WebControl
    {
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? String.Empty : s);
            }            set
            {
                ViewState["Text"] = value;
            }
        }        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write(Text);
        }        public override ControlCollection Controls
        {
            get
            {
                //确定服务器是否包含子控件
                EnsureChildControls();
                return base.Controls;
            }
        }        //声明子控件        private TextBox tb1;
        private Button btn1;        protected override void CreateChildControls()
        {
            tb1 = new TextBox();
            btn1 = new Button();
            btn1.Text = "mybtn1";
            tb1.Text = "mytb1";
            tb1.ID = "tb1";
            btn1.ID = "btn1";
            tb1.Width = 30;
            btn1.Width = 30;
            this.Controls.Add(tb1);
            this.Controls.Add(btn1);
            base.CreateChildControls();
        }        protected override void Render(HtmlTextWriter output)
        {
            AddAttributesToRender(output);
            output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Cellpadding, "0", false);
            //制定一个表
            output.RenderBeginTag(HtmlTextWriterTag.Table);  //表
            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
            //把控件在页面上呈现(画)出来
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            tb1.RenderControl(output);
            btn1.RenderControl(output);
            output.RenderEndTag();            base.Render(output);
        }
    }
}重新生成后, 把生成的控件拖放在页面上,页面上什么也看不到,代码如下:  <cc1:MyPageControl ID="MyPageControl1" runat="server" />浏览这个页面,也是什么没有?