0

私はHtmlGenericControl単純なDIVであるを持っていますrunat=server

このコントロールは、複数のページに存在する ASCX WebControl 内に埋め込まれています。Page_Load で、この要素は、ページ固有のデータベース データにデータ バインドされたリピーターによって設定されます。

私が抱えている問題は、ASCX WebControls が独自の要素の内容を簡単に読み取れないように見えることです。

これまでのところ、これは失敗しています: .NET (C#) で UserControl の HTML 出力を取得するにはどうすればよいですか?

ボタンのクリック内で HtmlGenericControl の内容を取得する方法を探しています。どうすればいいですか?

前の質問を単純化します。 ASCX で特定の要素の HTML を取得する

4

1 に答える 1

1

OK、うまくいきました(と思います...)

出力

ここに画像の説明を入力

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 に答える