实现ITextControl.Text属性应该就可以了吧,其实写在中间,跟你写在<uc  Text=""></uc>又有啥区别

解决方案 »

  1.   

    <uc:test runat="server">我是值</uc:test> 这样不对。<div>aaa</div>
     <span id="sptets" runat="server">
    <div>bbb</div>
    然后在test.ascx.cs 的pageload 里面赋值就可以注意加上ispostback
      

  2.   

    <div>aaa</div>
     <%=this.Text%>
    <div>bbb</div>最好中间那个也套一个div
      

  3.   


    我是值这里可能是大量的html代码,如果写在属性里会不方便,可读性也差
      

  4.   

    参考这样子:
    http://www.cnblogs.com/insus/p/3154363.html
      

  5.   


    会提示
    “ASP.page_system_usercontrol_test_ascx”内不允许包含文字内容(“我是值”)。
      

  6.   

    那你直接继承System.Web.UI.HtmlControls.HtmlContainerControl就好了
    另外System.Web.UI.HtmlControls.HtmlGenericControl : System.Web.UI.HtmlControls.HtmlContainerControl类似
    <div id="xx" runat="server" visible="false">一砣</div> 很常见吧,<uc id="uc1" HtmlContainer="xx" />你在uc1里定义一个属性
    public HtmlContainerControl HtmlContainer {get; set;}ascx中就改为
    <div>aaa</div>
     <%=this.HtmlContainer.InnerHtml%>
    <div>bbb</div>
      

  7.   


    //ascx.cs
    public string HtmlContainer { get; set; }        public string HtmlContainerInnerHtml
            {
                get
                {
                    if (!string.IsNullOrEmpty(this.HtmlContainer))
                    {
                        var ctrl = this.Page.FindControl(this.HtmlContainer) as System.Web.UI.HtmlControls.HtmlContainerControl;
                        if (ctrl != null)
                        {
                            return ctrl.InnerHtml;
                        }
                    }
                    return string.Empty;
                }
            }
    ascx
    <div>aaa</div>
    <%=this.HtmlContainerInnerHtml%>
    <div>bbb</div>aspx
    <div id="xx" runat="server" visible="false"><div>一砣随意放</div></div>
    <uc:test id="uc1" runat="server" HtmlContainer="xx" />
      

  8.   

    写好了,参考之:
    http://www.cnblogs.com/insus/p/4161544.html