给Repeater增加button事件,并绑定值

ASPX页面:

增加两个事件,及传值。

复制代码
1<asp:Repeater ID="rptList" OnItemDataBound="rptList_ItemDataBound" OnItemCommand="rptList_ItemCommand" runat="server">
2   <ItemTemplate>
3   <asp:Button ID="btnPass" runat="server" Text="Pass" CssClass="btn" CommandName="btnPass" CommandArgument="<%#((Get_Info)Container.DataItem).U_CHARGE_ID%>" />
4   </ItemTemplate>
5</asp:Repeater>
复制代码

CS页面:

 http://www.cnblogs.com/bingyu/articles/1725024.html

复制代码
 1protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
 2        {
 3            Get_Info info = (Get_Info)e.Item.DataItem;
 4            Button btn = (Button)e.Item.FindControl("btnPass");
 5
 6            btn.Enabled = !info.IS_OP;
 7
 8            if (!info.IS_OP) { btn.Text = "Pass"; }
 9            else { btn.Text = info.OP_PARTY_ID; }
10
11        }
12
13
14public void rptList_ItemCommand(object source, RepeaterCommandEventArgs e)
15        {
16            if (e.CommandName == "btnPass")
17            {
18                int ID = e.CommandArgument.ConvertType<Int32>(0);
19                VoucherLogic.Pass(ID, AdminName);
20            }
21            BaseResponse.Redirect(string.Format("List.aspx?{0}", QynRequest.GetUrl(QynRequest.UrlType.Params)));
22        }
复制代码

简单说明四处

1:OnItemDataBound="rptList_ItemDataBound"

     这个事件,跟按钮点击事件,并没有关系。在这里。只是用于控制按钮的显示状态。

2:OnItemCommand="rptList_ItemCommand"

     这个事件,就是重点啦。用于当触发Command相关的事件,用于,当点击了按钮后,触发要执行的代码。

3:CommandName="btnPass" 

    主要是每个按钮的标识,相当于ID一样。用于后台代码找到,你点击的是哪个按钮。

4:CommandArgument="<%#((Get_Info)Container.DataItem).U_CHARGE_ID%>"

     传值,object 类型。 比如你可以把这一行数据的ID传进去。当然可以把整个Entity传进去。

原文地址:https://www.cnblogs.com/Echo529/p/6386520.html