上面寫錯了,是CreateChildControls方法。沒人知道嗎?

解决方案 »

  1.   

    重载  RenderContents(HtmlTextWriter writer)方法,在里面直接输出HML代码可以实现
      

  2.   

    在CreateChildControls方法里可以初始化子控件的ID,Height,Width,等等        比如
    If conButton Is Nothing Then
                conButton = New Button
                conButton.ID = MyBase.ID & "_Button"
            End If
    但是结果要编译后把控件拖到页面上才看见.
      

  3.   

    首先,要为自定义控件指定一个Designer如:[Designer(typeof(WebControlLibrary.MyCustomControlDesigner))]
    public class MyCustomControl: WebControl
    {}MyCustomControlDesigner从ComponentDesigner继承public class MyCustomControlDesigner:ComponentDesigner{}重写ComponentDesigner的GetDesignTimeHtml()方法
    就可以了
      

  4.   

    Get
                Me.EnsureChildControls()
                Return ***
    End Getor
    <NotifyParentProperty(True)> _/*************jiu shi zhejuhua/
        Public Overrides Property CssClass() As String
            Get
                Return MyBase.CssClass
            End Get
            Set(ByVal Value As String)
                MyBase.CssClass = Value
            End Set
        End Property
      

  5.   

    可在render中写入:
    if( this.Controls.Count <= 0 )
      CreateChildControls();
      

  6.   

    同意 cyp503(谁怕?一蓑烟雨任平生) ( ) 信誉:
      

  7.   

    To: cyp503(谁怕?一蓑烟雨任平生) 
    正是我想要的,谢谢!
      

  8.   

    同意cyp503(谁怕?一蓑烟雨任平生)
    顺便借webdiyer的aspnetpager的designer做个例子
    #region AspNetPager Control Designer
    /// <summary>
    /// <see cref="AspNetPager"/> 服务器控件设计器。
    /// </summary>
    public class PagerDesigner:System.Web.UI.Design.WebControls.PanelDesigner
    {
    /// <summary>
    /// 初始化 PagerDesigner 的新实例。
    /// </summary>
    public PagerDesigner()
    {
    this.ReadOnly=true;
    }
    private AspNetPager wb; /// <summary>
    /// 获取用于在设计时表示关联控件的 HTML。
    /// </summary>
    /// <returns>用于在设计时表示控件的 HTML。</returns>
    public override string GetDesignTimeHtml()
    {

    wb=(AspNetPager)Component;
    wb.RecordCount=225;
    StringWriter sw=new StringWriter();
    HtmlTextWriter writer=new HtmlTextWriter(sw);
    wb.RenderControl(writer);
    return sw.ToString();
    } /// <summary>
    /// 获取在呈现控件时遇到错误后在设计时为指定的异常显示的 HTML。
    /// </summary>
    /// <param name="e">要为其显示错误信息的异常。</param>
    /// <returns>设计时为指定的异常显示的 HTML。</returns>
    protected override string GetErrorDesignTimeHtml(Exception e)
    {
    string errorstr="创建控件时出错!"+e.Message;
    return CreatePlaceHolderDesignTimeHtml(errorstr);
    }
    }
    #endregion