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傳進去。