Repeater常用事件:
Repeater有两个事件比较常用,①:Repeater1_ItemDataBound;②:Repeater1_ItemCommand;第一个事件net小伙已经在【ASP.NET】ItemDataBound之repeater 和 listview 写过了。现在叙述第二个事件。

从MSDN上可以看出,如果在Repeater中插入一个按钮的时候,执行此按钮的OnClick事件的时候需要借助此事件来完成。
在Repeater中插入按钮的时候要对按钮的源码进行设置:
<asp:Button ID="Button1" CommandName="bianji" runat="server" OnClientClick="return window.confirm('确认要通过吗? ')" CommandArgument='<%#Eval("Title") %>' Text="通过" />
从代码当中可以看出,在Button中插入了两个属性 ——CommandName和CommandArgument;


CommandName的作用就是为了在后台可以找到此按钮,就像按钮的ID。CommandArgument的作用就是把所需要的参数传递到后台。
后台代码如下:
1 protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
2 {
3 if (e.CommandName == "bianji")
4 {
5 modelnew.Title = e.CommandArgument.ToString();
6 if (dalnews.updatestate(modelnew))
7 {
8 Repeater1.DataBind();
9 }
10
11
12 }
13 }
Repeater分页功能:
Repeater不像其他的数据控件有内置的分页功能,如果想在Repeater中实现分页功能,需要借助PagedDataSource来实现分页。

前台代码如下:
前台代码
1 <asp:Repeater ID="Repeater1" runat="server">
2 <HeaderTemplate>
3 <table width="100%" style="background-color: #ADD2DA">
4 <tr>
5 <td >id</td>
6 <td >新闻名</td>
7 <td >发布时间</td>
8
9 <td >发布人</td>
10 <td>发布状态</td>
11 </tr>
12
13 </HeaderTemplate>
14 <ItemTemplate>
15 <tr style="background-color:#DCDCDC;color: #000000;">
16
17
18 <td style="width:"5%">
19 <asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' />
20 </td>
21
22 <td style="width:"40%">
23 <asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
24 </td>
25
26
27
28 <td style="width:"15%">
29 <asp:Label ID="DataTimeLabel" runat="server" Text='<%# Eval("DataTime") %>' />
30 </td>
31
32
33 <td style="width:"10%">
34 <asp:Label ID="UserNameLabel" runat="server" Text='<%# Eval("UserName") %>' />
35 </td>
36 <td style="width:"10%">
37 <asp:Label ID="Label1" runat="server" Text='<%# Eval("State") %>' />
38 </td>
39
40
41 </tr>
42 </ItemTemplate>
43 <FooterTemplate></table></FooterTemplate>
44 </asp:Repeater>
45
46
47 <table border="1" width="100%">
48 <tr><td align="center">
49 <asp:LinkButton ID="lbtnFirstPage" runat="server" OnClick="lbtnFirstPage_Click">页首</asp:LinkButton>
50 <asp:LinkButton ID="lbtnpritPage" runat="server" OnClick="lbtnpritPage_Click">上一页</asp:LinkButton>
51 <asp:LinkButton ID="lbtnNextPage" runat="server" OnClick="lbtnNextPage_Click">下一页</asp:LinkButton>
52 <asp:LinkButton ID="lbtnDownPage" runat="server" OnClick="lbtnDownPage_Click">页尾</asp:LinkButton><br />
53 第<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页/共<asp:Label ID="LabCountPage" runat="server" Text="Label"></asp:Label>
54 页
55 </td></tr>
56 </table>
后台代码:
后台代码
1 protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 this.labPage.Text = "1";
6 this.fenye();
7 }
8 }
9
10 void fenye()
11 {
12
13 //获取数据源
14 PagedDataSource pds = new PagedDataSource();
15 DataTable ds = getalldata();
16 pds.DataSource = ds.DefaultView;
17 //设置允许分页
18 pds.AllowPaging = true;
19 //设置在单页上显示的条数
20 pds.PageSize = 5;
21 //获取或设置当前页的索引
22 pds.CurrentPageIndex = Int32.Parse(labPage.Text) - 1;
23 //绑定控件的数据源
24 Repeater1.DataSource = pds;
25 Repeater1.DataBind();
26 //设置页的总数
27 LabCountPage.Text = pds.PageCount.ToString();
28 //设置按钮的可操作性
29 lbtnDownPage.Enabled = true;
30 lbtnFirstPage.Enabled = true;
31 lbtnNextPage.Enabled = true;
32 lbtnpritPage.Enabled = true;
33 if (pds.CurrentPageIndex < 1)
34 {
35 lbtnFirstPage.Enabled = false;
36 lbtnpritPage.Enabled = false;
37 }
38 if (pds.CurrentPageIndex == pds.PageCount - 1)
39 {
40 lbtnDownPage.Enabled = false;
41 lbtnNextPage.Enabled = false;
42 }
43
44
45
46 }
47
48 DataTable getalldata()
49 {
50
51 using (SqlConnection cons = new SqlConnection("server = .; database = newsrelease; integrated security=SSPI;"))
52 {
53 string liketitle = string.Format("select * from T_News");
54 SqlDataAdapter da = new SqlDataAdapter(liketitle, cons);
55 DataTable ds = new DataTable();
56 da.Fill(ds);
57 if (ds != null)
58 {
59 return ds;
60 }
61 else
62 {
63 return null;
64 }
65
66 }
67 }
68
69 //设置首页按钮功能
70 protected void lbtnFirstPage_Click(object sender, EventArgs e)
71 {
72 labPage.Text = "1";
73 this.fenye();
74 }
75 //设置上一页按钮功能
76 protected void lbtnpritPage_Click(object sender, EventArgs e)
77 {
78 labPage.Text = (Int32.Parse(labPage.Text) - 1).ToString();
79 this.fenye();
80 }
81 //设置下一页按钮功能
82 protected void lbtnNextPage_Click(object sender, EventArgs e)
83 {
84 labPage.Text = (Int32.Parse(labPage.Text) + 1).ToString();
85 this.fenye();
86 }
87 //设置尾页按钮功能
88 protected void lbtnDownPage_Click(object sender, EventArgs e)
89 {
90 labPage.Text = LabCountPage.Text;
91 this.fenye();
92 }
93
94
95
96
97
怎么使Repeater的数据横着显示:
只需要设置Repeater的ItemTemplate绑定的数据以UL的形式显示,并且设置其CSS的样式向左边浮动即可,代码如下:
横着显示Repeater数据
1 <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
2 <ItemTemplate>
3 <a href="typenews.aspx?type=<%#Eval("id") %>" class="home" >
4 <ul style="float:left;font-size: x-large">
5 <li><%#Eval("TypeName") %> </li>
6 </ul>
7 </a>
8 </ItemTemplate>
9 </asp:Repeater>
来源:https://www.cnblogs.com/ngnetboy/archive/2012/06/14/2549019.html
