我有HtmlGenericControl
这是一个简单的DIV runat=server
此控件嵌入在ASCX WebControl内部,该控件驻留在多个页面上。在Page_Load中,此元素由转发器填充,该转发器数据绑定到特定于页面的数据库数据。
我遇到的麻烦是ASCX WebControls似乎不太容易阅读他们自己元素的内容。
到目前为止,这已失败: How do I get the HTML output of a UserControl in .NET (C#)?
我正在寻找一种方法来获取点击按钮内的HtmlGenericControl的内容。我该怎么做?
答案 0 :(得分:1)
好的,我开始工作了(我想......)
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
%@ 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" />