检索ASCX的WebControl里面HtmlGenericControl内容(Retrieve c

2019-07-30 13:39发布

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

这种控制是嵌入驻留在多个页面上的ASCX的WebControl的内部。 在此的Page_Load元件由中继器即数据绑定到即页面的特定数据库中的数据填充。

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

到目前为止,已发生故障: 我如何获得一个用户控件的HTML输出在.NET(C#)?

我正在寻找一种方式来获得一个按钮,点击里面的HtmlGenericControl的内容。 我会怎么做呢?

简化前面的问题。 检索ASCX特定元素的HTML

Answer 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" />


文章来源: Retrieve contents of HtmlGenericControl inside ASCX WebControl