TB为一个用户自定义控件
这样做行吗?
Label tl = new Label();
tl.Controls.Add(TB);
string TagStr = tl.Text;

解决方案 »

  1.   

    我想获取控件处理后的HTML源码
      

  2.   

    PlaceHolder.Add(),关键要看你实现什么功能下面是一段示例
    <% @ Page Language="C#" %>
    <% @ Import Namespace="System.Data" %>
    <Script Language="C#" Runat="Server">
    public void Page_Load(Object src,EventArgs e)
    {
    Label lblTitle = new Label();
    lblTitle.Text = "添加至PlaceHolder的Label控件";
    holder.Controls.Add(lblTitle);Button btnSubmit = new Button();
    btnSubmit.Text = "添加的Button控件";
    holder.Controls.Add(btnSubmit);
    }
    </script>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form runat="server">
    <b>演示PlaceHolder控件</b><br>
    <asp:PlaceHolder id="holder" runat="server" />
    </form>
    </body>
    </html>
      

  3.   

    我是想在一个页面的CS里得到一个用户自定义控件外理完信息后要呈现到页面上的HTML代码。如:在页面A.aspx的CS里得到用户自定义控件B.ascx处理完信息后要显示的HTML代码string BStr,在A.CS里用Response.Write("111"+ BStr +"ccc");
    因为不能在ASPX里显示控件,只能在CS先得到HTML代码再显示,所以出现了上面的问题。
      

  4.   

    你可以重写RenderControl方法,提供自己的htmlWriter参数,或者把它复制下来。不过你要写明你这样做的目的。因为在RenderControl执行的时候,你不一定还来得及做很多处理。过去在asp.net1.0中(以及好像在1.1的低版本中)调用RenderControl没有严格的限制,造成很多“把DataGrid导出为Excel”的所谓样板程序中的代码,其实在现在的asp.net版本中根本运行不了,会出现类似“必须出现在run=server的form中”的错误。
      

  5.   

    如果你想获得所谓的Ajax效果,你可以使用iframe(但是style=display:none)或者使用httpRequest,获取一个新的aspx页面,然后把body或者某个span中的innerHtml取出来,放在叶面上。