Repeater控件之--绑定按钮命令

repeater和gridview,datalist等都有类似的事件,和类似的绑定办法,不过repeater的概念是没有row等字段属性的,先看如下代码:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
protected void rptMember_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
//rpt的元素是item,所以先判断每一行是否项模版或者是间隔模版
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
//这里用了linkbtn来出发事件
            LinkButton linkBtnUserState = e.Item.FindControl("linkBtnUserState"as LinkButton;
//这里关键,需要用隐藏的label暂存Id
            Label lbId = e.Item.FindControl("lbId"as Label;
//然后把ID放到commandArgument里面
            linkBtnUserState.CommandArgument = lbId.Text;
        }
    }
protected void rptMember_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
//这里就可以调用commandArgument获得对应的ID
        int id = int.Parse(e.CommandArgument.ToString());
        UserInfo userMember 
= UserInfoManager.FetchEntityByKey(id);
        
if (userMember == null)
        {

        }
        
else
        {
//这里用法和gridview类似,不过设置CommandName的地方不是view控件,而是Linkbtn里面设置,这里需区别一下
            if (e.CommandName == "UpdateState")
            {

                
if (userMember.UserState)
                {
                    userMember.UserState 
= false;
                }
                
else
                {
                    userMember.UserState 
= true;
                }
                UserInfoManager.ModifyEntity(userMember);
                BindRepeater(
out pageCount);
            }
        }

    }

总结:要用到控件后台来动态绑定数据,需要判断好控件自带的事件,还有是这些事件的时机,用好微软自身控件的功能和事件,其实也蛮强大的。当然,发展下去当然要自定义自己需求的东西。在asp.net 3.5的控件时代,努力吃透工具栏不同控件的内涵吧

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<td width="10%" align="center">
<asp:LinkButton ID="linkBtnUserState" runat="server" CommandName="UpdateState"><%#UserState(Convert.ToInt32(Eval("UserState"))) %>
</asp:LinkButton>
                                        
</td>
//注意这里commandName是设置在按钮控件里面

 

转载于:https://www.cnblogs.com/drek_blog/archive/2009/10/28/1591095.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值