本帖最后由 flcandclf 于 2010-06-09 16:59:00 编辑

解决方案 »

  1.   

    重写TagKey属性protected override HtmlTextWriterTag TagKey
    {
        get{return ...............}}
      

  2.   

    重写
    RenderBeginTag

    RenderEndTag方法也行
      

  3.   

    重写了仍然有<></>标签,
      

  4.   

    只是重写了可以把<span>换成其他标签
      

  5.   

    重写了render方法也是一样的,都不能去掉那该死的标签
      

  6.   

    你试过没有?
    晕~~~
    控件 public class WebCustomControl1 : 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);
            //}
            protected override void Render(HtmlTextWriter writer)
            {
                //base.Render(writer);
                writer.Write(Text);
            }调用<head runat="server">
        <title><cc1:WebCustomControl1 ID="WebCustomControl1_1" Text="测试" runat="server" /></title>
    </head>
    html源码<head><title>
    测试
    </title>
    </head>
      

  7.   

    非常感谢,已经解决了,但我非常奇怪,为什么重载RenderContents输出来的有标记,Render输出来就没有标记?
      

  8.   

    render
    包含了
    renderbegintag输出开始标签
    rendercontents输出内容
    renderendtag输出结束标签
    三个动作
      

  9.   

            //默认是输出<span></span>,在这里重载为<div></div>
            protected override HtmlTextWriterTag TagKey
            {
                get
                {
                    return HtmlTextWriterTag.Div;
                }
            }