需求介绍:在Repeater(Table)中加入“序号”列,从1开始自增,步长为1。
思路:因为“序号”跟Repeater的行号有关,所以要在Repeater的ItemDataBound事件中输出“序号”的值。为方便给“序号”赋值,我们使用Label控件。
注意:Repeater的ItemIndex是从0开始的,而“序号”列是从1开始的,所以ItemIndex要加1。
前台代码如下图所示:
前台代码 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <HeaderTemplate> <table border="1" style="border-color: #000000; border-collapse: collapse; 100%; text-align: center; word-spacing: normal; font-size: 13px;" cellpadding="5"> <tr height="20" style="background-color: #66CCFF; font-weight: bold;"> <td> 序号 </td> <td> 合同号 </td> <td> 设备名称 </td> <td> 设备型号 </td> <td> 数量 </td> <td> 入库时间 </td> <td> 操作 </td> </tr> </HeaderTemplate> <ItemTemplate> <tr style='background-color: <%#(Container.ItemIndex%2==0)?"#eeeeee":"#ffffff"%>' onmouseover="this.style.background='#ddeeff'" onmouseout="this.style.background='<%#(Container.ItemIndex%2==0)?"#eeeeee":"#ffffff"%>'"> <td> <asp:Label ID="no" runat="server" Text=""></asp:Label> </td> <td> <%# DataBinder.Eval(Container, "DataItem.contract_no")%> </td> <td> <%# DataBinder.Eval(Container, "DataItem.assets_name")%> </td> <td> <%# DataBinder.Eval(Container, "DataItem.assets_model")%> </td> <td> <%# DataBinder.Eval(Container, "DataItem.assets_amount")%> </td> <td> <%# DataBinder.Eval(Container, "DataItem.in_time")%> </td> <td> <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%#"storage_details.aspx?storage_id="+DataBinder.Eval(Container, "DataItem.ID") %>' Text="明细"></asp:HyperLink> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
后台代码如下图所示:
后台代码 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Label lb_no = (Label)e.Item.FindControl("no"); lb_no.Text = (1 + e.Item.ItemIndex).ToString(); } }