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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM