簡體   English   中英

在ImageButton上檢索ASP.NET Eval單擊

[英]Retrieve ASP.NET Eval on ImageButton Click

我有以下中繼器,其中一些div包含信息和一個ImageButton 單擊ImageButton我想檢索包含"ID"DataBinder.Eval

 <asp:Repeater ID="RptPendingRequests" runat="server" onitemcommand ="RptPendingRequests_ItemCommand">
    //other divs here
    <div class="LabelCustomShort" style="font-size:10px"><%#DataBinder.Eval(Container.DataItem, "ID")%></div>
    <asp:ImageButton runat="server" ID="btnPrint" ImageUrl="~/Images/print.gif" onclick="btnPrint_Click" /></div>
    //other divs here
    <asp:Button runat="server" ID="btnSubmit"  Text="Submit" style="float:right;" onclick="btnSubmit_Click" />
    </asp:Repeater>

在ImageButton上單擊,我想檢索單擊了圖像按鈕的項目的ID,並將其發送給另一種方法,如下所示。

  protected void btnPrint_Click(object sender, RepeaterItemEventArgs e)
    {
        var id = e.Item.FindControl("Id") as Label;
        DefaultClass.createPDF(Convert.ToInt32(id));
    }

但是,由於它是一個圖像按鈕, RepeaterItemEventArgs只能是ImageClickEventArgs因為它是圖像按鈕,因此我不知道如何准確地檢索ID。

將具有ID的隱藏字段添加到Repeater:

<asp:HiddenField ID="hfId" runat="server" Value='<%# Eval("ID") %>' />

然后在事件處理程序中:

var id = ((Control)sender).Parent.FindControl("hfId") as HiddenField;
DefaultClass.createPDF(Convert.ToInt32(id.Value));

您還可以在CommandArgument添加id為

<asp:ImageButton runat="server" ID="btnPrint" ImageUrl="~/Images/print.gif" OnClick="btnPrint_Click" CommandArgument = '<%# Eval("ID") %>'/>

在點擊事件處理程序中

protected void btnPrint_Click(object sender, EventArgs e)
{
   string id = (sender as ImageButton).CommandArgument;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM