检索ASCX WebControl中的HtmlGenericControl的内容

时间:2012-07-24 00:36:02

标签: c# asp.net html event-handling click

我有HtmlGenericControl这是一个简单的DIV runat=server

此控件嵌入在ASCX WebControl内部,该控件驻留在多个页面上。在Page_Load中,此元素由转发器填充,该转发器数据绑定到特定于页面的数据库数据。

我遇到的麻烦是ASCX WebControls似乎不太容易阅读他们自己元素的内容。

到目前为止,这已失败: How do I get the HTML output of a UserControl in .NET (C#)?

我正在寻找一种方法来获取点击按钮内的HtmlGenericControl的内容。我该怎么做?

简化上一个问题。 Retrieve HTML of specific element in ASCX

1 个答案:

答案 0 :(得分:1)

好的,我开始工作了(我想......)

输出

enter image description here

ASPX代码背后

    public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }

ASPX标记

%@ Page EnableEventValidation="false" .....

后面的用户控制代码
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            var d = new QuestionsContext().GetQuestions();

            this.repeater.DataSource = d;
            this.repeater.DataBind();
        }
    }

    protected void getContent_Click(object sender, EventArgs e)
    {
        var sb = new StringBuilder();

        this.generic.RenderControl(new HtmlTextWriter(new StringWriter(sb)));

        string s = sb.ToString();

        this.Trace.Warn(Server.HtmlEncode(s));
        this.message.Text = Server.HtmlEncode(s);
    }

用户控制标记

<div runat="server" id="generic">
    <asp:Repeater runat="server" ID="repeater" >
        <ItemTemplate>
            <%# Eval("QuestionText") %>
        </ItemTemplate>
    </asp:Repeater>
</div>

<br />
<asp:Button Text="Get content" ID="getContent" runat="server" OnClick="getContent_Click" />
<br />
<asp:Label ID="message" runat="server" />