Вопрос по html, click, asp.net, c#, event-handling – Получить содержимое HtmlGenericControl внутри ASCX WebControl

0

у меня естьHtmlGenericControl который является простым DIV сrunat=server

Этот элемент управления встроен в ASCX WebControl, который находится на нескольких страницах. В Page_Load этот элемент заполняется повторителем, который привязан к данным базы данных, специфичным для конкретной страницы.

Проблема, с которой я сталкиваюсь, заключается в том, что ASCX WebControls не очень легко читает содержимое своих собственных элементов.

Пока что это не удалось: Как получить HTML-вывод UserControl в .NET (C #)?

Я ищу способ получить содержимое HtmlGenericControl внутри нажатия кнопки. Как бы я это сделал?

Simplifying previous question. Получить HTML определенного элемента в ASCX

Ваш Ответ

1   ответ
1

Хорошо, я получил это работает (я думаю ...)

Output

enter image description here

ASPX Code behind
    public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }
ASPX markup
%@ Page EnableEventValidation="false" .....
User control code behind
    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);
    }
User control markup
<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" />

Похожие вопросы