我想在渲染我尝试将转发器控件导出为excel之前从转发器控件中删除隐藏的字段控件
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
Repeater newrpt = (Repeater)Cache["Report"];
//remove hidden field from newrpt
newrpt.RenderControl(htw);
这是我的代码。我需要删除,因为我收到错误Control 'ctl00_ContentPlaceHolder1_rptSafetyIndicator_ctl01_hidSIId' of type 'HiddenField' must be placed inside a form tag with runat=server.
答案 0 :(得分:1)
您可以在数据绑定
后从ItemTemplate中删除任何控件 repeater.ItemDataBound += delegate(object sender, RepeaterItemEventArgs ev)
{
var hf = ev.Item.FindControl("hidSIId");
ev.Item.Controls.Remove(hf);
};
但我认为主要的问题是,你在模板控件上调用RenderControl,它必须放在FORM控件中。您可以通过覆盖Page.VerifyRenderingInServerForm
来解决此错误