给Repeater增加button事件,并绑定值
ASPX页面:
增加两个事件,及传值。
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
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传进去。
清空回声