在导出到excel vb.net时如何在中继控件中做隐形checkbox?

嗨,所有我很新vb.net在这里,我从Repeater控制出口数据到Excel我做得很好,但在我的中继器控制我有一个checkbox,我只是不想显示在我的Excel中我怎么能排除它

<asp:Repeater ID="fillmrepeater" runat="server"> <HeaderTemplate> <tr> <td> Select </td> <td> Name </td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td> <input type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "Id")%>' name="cP" id="cP"> </td> <td> <%# DataBinder.Eval(Container.DataItem("Name"), "Name")%>)%> </td> </tr> </ItemTemplate> </asp:Repeater> 

并在导出到Excel时在代码隐藏

  Private Sub exportExcel_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.exportExcelClickEventArgs) Handles exportExcel_Click.Click For Each repter As RepeaterItem In fillmrepeater.Items If repter.ItemType = ListItemType.Item Or repter.ItemType = ListItemType.AlternatingItem Then Dim ckb As New CheckBox() CType(repter.FindControl("chkPerson"), CheckBox).Visible = False End If Next Response.Clear() Response.Buffer = True Response.AddHeader("Content-Disposition", "attachment; filename=report.xls;") Response.ContentType = "application/vnd.ms-excel" Dim sw As New StringWriter() Dim hw As New Html32TextWriter(sw) fillmrepeater.RenderControl(hw) Response.Write("<table>") Response.Write(sw.ToString()) Response.Write("</table>") Response.Flush() Response.End() END Sub END Class 

在这里我得到对象引用没有设置为对象的实例,所以我在这里变空,我只需要使可见= false到checkbox框可以任何身体帮助我请

提前致谢

  1. RunAt="server"属性放在您的checkbox上,以便在代码隐藏中可用。

     <input type="checkbox" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "Id")%>' name="chkPerson" id="chkPerson" /> 
  2. 修改你的代码如下:

     For Each repter As RepeaterItem In fillmrepeater.Items If repter.ItemType = ListItemType.Item Or repter.ItemType = ListItemType.AlternatingItem Then CType(repter.FindControl("chkPerson"), HtmlInputCheckBox).Visible = False End If Next 

编辑:

要隐藏标题行:

  1. runat="server"标记HeaderTemplate <TR> ,以便我们可以在代码隐藏中访问它。

      <HeaderTemplate> <tr runat="server" id="HeaderRow"> <td> Select </td> <td> Name </td> </tr> </HeaderTemplate> 
  2. [你现在已经知道该怎么办了:)]

     Dim headerRow As HtmlTableRow = fillmrepeater.Controls(0).FindControl("HeaderRow") headerRow.Visible = False