ExportToHttpResponse 不适用于 ASP.net 中更新面板内的 Itemtemplate 按钮

ExportToHttpResponse is not working for Itemtemplate button inside update panel in ASP.net

我在 UpdatePanel 中有一个 Gridview。我想通过单击 gridview 中的 itemtemplate 按钮来下载文件。当更新面板 removed.the 文件下载顺利但内部更新面板文件未下载时,一切正常。我想在 updatepanel 中下载文件。 我应该怎么办?这是我的代码。

protected void ibPrint_Click(object sender, ImageClickEventArgs e)
{          
    GridViewRow clickedRow = ((ImageButton)sender).NamingContainer as GridViewRow;
    string File1 = gvBRV.DataKeys[clickedRow.RowIndex].Values[1].ToString();
    crystalReport = obj3.Rpt_Voucher(0, "Files", Server.MapPath(@"CrystalReports\Attachments\Files.rpt"),File1);
    Response.Buffer = false;
    Response.ClearContent();
    Response.ClearHeaders();
    crystalReport.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "CashReceipt.pdf");
    crystalReport.Refresh();
    lblMsg.Text = "Export Successfully.";        
}


 <asp:GridView ID="gvBRV" runat="server" AutoGenerateColumns="False" DataKeyNames="Files">
    <Columns>
        <asp:TemplateField HeaderText="Export" HeaderStyle-ForeColor="Black">
            <ItemTemplate>
                <asp:ImageButton ID="Export" ClientIDMode="AutoID" class="imagebutton" runat="server"
                    ImageUrl="~/images/print.jpg" Width="25px" Height="25px" ImageAlign="Middle"
                    EnableTheming="True" Enabled="False" OnClick="ibPrint_Click" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

您需要为按钮创建回发触发器 Export

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

        <asp:ImageButton ID="Export" runat="server" />

    </ContentTemplate>
    <Triggers>

        <asp:PostBackTrigger ControlID="Export" />

    </Triggers>
</asp:UpdatePanel>

更新:

我看到按钮在 GridView 中。在这种情况下,直接向 UpdatePanel 添加触发器是行不通的。需要在后面的代码中添加。

foreach (GridViewRow row in gvBRV.Rows)
{
    ImageButton ib = row.FindControl("Export") as ImageButton;
    ScriptManager.GetCurrent(Page).RegisterPostBackControl(ib);
}