0

我有HtmlGenericControl一个简单的 DIVrunat=server

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

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

到目前为止,这失败了: 如何在 .NET (C#) 中获取 UserControl 的 HTML 输出?

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

简化上一个问题。 在 ASCX 中检索特定元素的 HTML

4

1 回答 1

1

好的,我得到它的工作(我认为......)

输出

在此处输入图像描述

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" />
于 2012-07-24T01:14:08.253 回答