【总结】——Repeater控件详细应用

Repeater控件应用详解

1 在App_Data文件夹下建立一个数据库文件.mdf,创建一张新表,往里面灌一些数据;

2 新建一个DAL文件夹,添加数据集文件DataSet,利用强类型Dataset实现数据与页面的分离;

3 拖一个ObjectDataSource控件,选择数据源;

4 拽一个Repeater控件,选择数据源,排班;

切换到后台.aspx代码

 
  
1 < asp:Repeater ID = " Repeater1 " runat = " server " DataSourceID = " ObjectDataSource1 "
2 onitemdatabound = " Repeater1_ItemDataBound "
3 onitemcommand = " Repeater1_ItemCommand " >
4 < HeaderTemplate >< table >< tr >< td > 用户名 </ td >< td > 状态 </ td >< td > 操作 </ td ></ tr ></ HeaderTemplate >
5 < ItemTemplate >
6 < tr runat = " server " id = " trRow " >
7 < td ><% #Eval( " UserName " ) %></ td >
8 < td ><% #Eval( " Status " ) %></ td >
9 < td >
10 < asp:Button runat = " server " ID = " btnEnabled " CommandName = " Enabled " CommandArgument = ' <%#Eval("Id") %> ' Text = " 启用 " />
11 < asp:Button runat = " server " ID = " btnDisabled " CommandName = " Disabled " CommandArgument = ' <%#Eval("Id") %> ' Text = " 禁用 " OnClientClick = " return confirm('真的要禁用吗?') " />
12 </ td >
13 </ tr >
14 </ ItemTemplate >
15 < FooterTemplate ></ table ></ FooterTemplate >
16 </ asp:Repeater >

5 Repeater有ItemDataBound和ItemCommand事件;

 
  
1 protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e)
2 {
3 // 只处理Item类型,对于Header等类型则不处理
4   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
5 { // 没有给AlternatingItem,但是偶数行也是e.Item.ItemType=AlternatingItem
6   DataRowView rowView = (DataRowView)e.Item.DataItem;
7 var userRow = (ASP.NET高级.DAL.DataSetUsers.T_UsersRow)rowView.Row;
8 if (userRow.Status == " 禁用 " )
9 {
10 // 1 把这行高亮显示
11   HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl( " trRow " );
12 trRow.Attributes[ " class " ] = " disabledRow " ;
13
14 Button btnEnabled = (Button)e.Item.FindControl( " btnEnabled " );
15 Button btnDisabled = (Button)e.Item.FindControl( " btnDisabled " );
16
17 // 2 显示启用按钮
18   btnEnabled.Visible = true ;
19 // 3 不显示禁用按钮
20 btnDisabled.Visible = false ;
21 }
22 else if (userRow.Status == " 启用 " )
23 {
24 // 1 把这行普通显示
25 HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl( " trRow " );
26 trRow.Attributes[ " class " ] = "" ; // 空的
27
28 Button btnEnabled = (Button)e.Item.FindControl( " btnEnabled " );
29 Button btnDisabled = (Button)e.Item.FindControl( " btnDisabled " );
30
31 // 2 不显示启用按钮
32 btnEnabled.Visible = false ;
33 // 3 显示禁用按钮
34 btnDisabled.Visible = true ;
35
36 }
37 else // 写严谨的程序,可以尽早的发现问题
38 {
39 throw new Exception( " 非法的status状态 " );
40 }
41 }
42
43 }
44
45 protected void Repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
46 {
47 if (e.CommandName == " Enabled " ) // 启用
48 {
49 long id = Convert.ToInt64(e.CommandArgument);
50 T_UsersTableAdapter adapter = new T_UsersTableAdapter();
51 adapter.EnableUserById(id);
52 Repeater1.DataBind(); // Don't forget!!!
53 }
54 else if (e.CommandName == " Disabled " ) // 禁用
55 {
56 long id = Convert.ToInt64(e.CommandArgument);
57 T_UsersTableAdapter adapter = new T_UsersTableAdapter();
58 adapter.DisableUserById(id);
59 Repeater1.DataBind(); // Don't forget!!!
60 }
61 }

Over. . .

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值