现在的位置: 首页 > 综合 > 正文

ASP.NET(C#)–Repeater中生成“序号”列

2012年11月23日 ⁄ 综合 ⁄ 共 1858字 ⁄ 字号 评论关闭

需求介绍:在Repeater(Table)中加入“序号”列,从1开始自增,步长为1。

思路:因为“序号”跟Repeater的行号有关,所以要在Repeater的ItemDataBound事件中输出“序号”的值。为方便给“序号”赋值,我们使用Label控件。

注意:Repeater的ItemIndex是从0开始的,而“序号”列是从1开始的,所以ItemIndex要加1。

前台代码如下图所示:

前台代码

1 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
2 <HeaderTemplate>
3 <table border="1" style="border-color: #000000; border-collapse: collapse; width: 100%;
4 text-align: center; word-spacing: normal; font-size: 13px;" cellpadding="5">
5 <tr height="20" style="background-color: #66CCFF; font-weight: bold;">
6 <td>
7 序号
8 </td>
9 <td>
10 合同号
11 </td>
12 <td>
13 设备名称
14 </td>
15 <td>
16 设备型号
17 </td>
18 <td>
19 数量
20 </td>
21 <td>
22 入库时间
23 </td>
24 <td>
25 操作
26 </td>
27 </tr>
28 </HeaderTemplate>
29 <ItemTemplate>
30 <tr style='background-color: <%#(Container.ItemIndex%2==0)?"#eeeeee":"#ffffff"%>'
31 onmouseover="this.style.background='#ddeeff'" onmouseout="this.style.background='<%#(Container.ItemIndex%2==0)?"#eeeeee":"#ffffff"%>'">
32 <td>
33 <asp:Label ID="no" runat="server" Text=""></asp:Label>
34 </td>
35 <td>
36 <%# DataBinder.Eval(Container, "DataItem.contract_no")%>
37 </td>
38 <td>
39 <%# DataBinder.Eval(Container, "DataItem.assets_name")%>
40 </td>
41 <td>
42 <%# DataBinder.Eval(Container, "DataItem.assets_model")%>
43 </td>
44 <td>
45 <%# DataBinder.Eval(Container, "DataItem.assets_amount")%>
46 </td>
47 <td>
48 <%# DataBinder.Eval(Container, "DataItem.in_time")%>
49 </td>
50 <td>
51 <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%#"storage_details.aspx?storage_id="+DataBinder.Eval(Container, "DataItem.ID") %>' Text="明细"></asp:HyperLink>
52 </td>
53 </tr>
54 </ItemTemplate>
55 <FooterTemplate>
56 </table>
57 </FooterTemplate>
58 </asp:Repeater>

后台代码如下图所示:

后台代码

1 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
2 {
3 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
4 {
5 Label lb_no = (Label)e.Item.FindControl("no");
6 lb_no.Text = (1 + e.Item.ItemIndex).ToString();
7 }
8 }

抱歉!评论已关闭.