C# 复制并删除中继器上的复选框

C# 复制并删除中继器上的复选框,c#,.net,asp.net,repeater,C#,.net,Asp.net,Repeater,我有一个中继器,它有一些复选框控件。我想复制中继器中除复选框之外的所有项目,在这些复选框中我将复制复选框的值。其目的是,我想将所有信息从转发器导出到xls格式的excel文档中。然而,这不允许我有复选框,因此我想删除它们的原因 请问我该怎么做 我试过: for (int j =0; j<repeater1.Items.Count; j++) { RepeaterItem repItem = repeater1.Items[j]; foreach (Control c in

我有一个中继器,它有一些复选框控件。我想复制中继器中除复选框之外的所有项目,在这些复选框中我将复制复选框的值。其目的是,我想将所有信息从转发器导出到xls格式的excel文档中。然而,这不允许我有复选框,因此我想删除它们的原因

请问我该怎么做

我试过:

for (int j =0; j<repeater1.Items.Count; j++)
{
    RepeaterItem repItem = repeater1.Items[j];

    foreach (Control c in repItem.Controls)
    {
        if (!(c is CheckBox))
        {
            Control c2 = c;
            repeater2.Items[j].Controls.Add(c2);
        }
    }
}

for(int j=0;j您在评论中写道,您希望导出具有复选框的中继器。不允许将复选框导出到excel,这就是为什么您希望在导出前删除复选框

这里有一种方法可以做到这一点…只需将此添加到您的页面并尝试

public override void VerifyRenderingInServerForm(Control control)
{
}
或者,如果导出
数据表而不是
中继器
,该怎么办

如果上面的方法不起作用,您希望迭代然后导出,那么下面是代码

protected void btnExport_Click(object sender, EventArgs e)
{
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);

    string attachment = "attachment; filename=FileName" + DateTime.Now.ToString() + ".xls";

    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.ContentType = "application/ms-excel";

    foreach (RepeaterItem item in Repeater1.Items)
    {
       CheckBox chk= item.FindControl("CheckBox") as CheckBox;
       chk.Visible = false;
    }

    Repeater1.RenderControl(htw);

    Response.Write(sw.ToString());
    Response.End();
}

如果您的项目包含复选框,您不想显示?我不想让它成为repeater的一部分-因为这样我需要导出到excel,并且它不接受复选框必须修改您的问题并解释您实际需要的内容。repeater2是页面上的一个单独的repeater还是您在代码中声明的新repeater?