Repeater数据控件的两个重要事件ItemDataBound 和 ItemCommand

    CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记

1   ItemDataBound:数据绑定的时候(正在进行时)发生。


2   ItemCommand :用来响应Item模板中的控件的事件。


如下代码


aspx代码:

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1" 
            onitemcommand="Repeater1_ItemCommand" 
            onitemdatabound="Repeater1_ItemDataBound">
        <ItemTemplate>
        <span runat="server" id="span">
        --------------------<asp:Button ID="addButon" CommandName="addButton" CommandArgument='<%#Eval("part_code") %>' runat="server" Text="库存+1" />-------------------<%#Eval("part_code") %>---------------<%#Eval("stock_num") %><br/><br/>
        </span>
        </ItemTemplate>
        </asp:Repeater>

cs代码:

 //响应Item模板中控件的事件---------点击按钮,库存+1
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "addButton")//判断这个Item里哪个控件响应的这个事件
            {
                string part_code = (string)e.CommandArgument;//获取Item传过来的参数

                //下面是通过Linq修改数据(即:使库存+1)
                DataClasses1DataContext dc = new DataClasses1DataContext();
                var rs = dc.tbl_stock_dtl.Select(r => r).Where(r => r.part_code == part_code);
                if (rs.Count() > 0)
                {
                    foreach (tbl_stock_dtl t in rs)
                    {
                        t.stock_num += 1;
                    }
                }
                dc.SubmitChanges();
                Repeater1.DataBind();//强行刷新数据,就是说,库存+1后,立马显示新的数据。

            }
        }

        //当浏览器显示一条记录的时候,响应的事件---------库存为零的背景变红
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            //判断Item的类型,因为Item有好几种:footer ,header ,Item....
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                //把ItemData转换为对应的类对象
                tbl_stock_dtl tsd = (tbl_stock_dtl)e.Item.DataItem;
                if (tsd.stock_num == 0)
                {
                    //找到对应的控件,因为span是html的,所以,要加上runat=“server”
                    HtmlGenericControl hgc = (HtmlGenericControl)e.Item.FindControl("span");

                    //为span动态添加一个属性:style,该属性的值为:background-color:red
                    hgc.Attributes.Add("style", "background-color:red");
                }
            }
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值