Asp.net 在渲染之前从repeater中移除控件

Asp.net 在渲染之前从repeater中移除控件,asp.net,Asp.net,在渲染我试图将repeater控件导出到excel之前,我想从repeater控件中删除隐藏的字段控件 StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); Repeater newrpt = (Repeater)Cache["Report"]; //remove hidden field from newrpt newrpt.RenderControl(htw); 这是我的密码

在渲染我试图将repeater控件导出到excel之前,我想从repeater控件中删除隐藏的字段控件

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
Repeater newrpt = (Repeater)Cache["Report"];

//remove hidden field from newrpt 
newrpt.RenderControl(htw);

这是我的密码。我需要删除,因为我得到的错误是必须将类型为“HiddenField”的控件“ctl00”和“ContentPlaceholder 1”放置在runat=server的表单标记中。

数据绑定后,您可以从ItemTemplate中删除任何控件

    repeater.ItemDataBound += delegate(object sender, RepeaterItemEventArgs ev)
    {
        var hf = ev.Item.FindControl("hidSIId");
        ev.Item.Controls.Remove(hf);
    };
但我认为主要的问题是,您在模板控件上调用RenderControl,该控件必须放在表单控件中。您可以通过重写来解决此错误