【问题标题】:Retrieve ASP.NET Eval on ImageButton Click在 ImageButton 单击上检索 ASP.NET Eval
【发布时间】:2014-03-27 21:38:05
【问题描述】:

我有以下转发器,其中包含一些包含信息的 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。

【问题讨论】:

    标签: c# asp.net repeater imagebutton databinder


    【解决方案1】:

    将带有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));
    

    【讨论】:

    • 如果你想在RepeaterDataGridGridView(实现INamingContainer接口的那些)中找到父行,那么最好使用.NamingContainer而不是.Parent
    【解决方案2】:

    你也可以在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;
    }
    

    【讨论】:

    • 试过了,但是字符串id是空的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多