【问题标题】:ExportToHttpResponse is not working for Itemtemplate button inside update panel in ASP.netExportToHttpResponse 不适用于 ASP.net 中更新面板内的 Itemtemplate 按钮
【发布时间】:2018-08-20 12:55:57
【问题描述】:

我在 UpdatePanel 中有一个 Gridview。我想通过单击gridview 中的itemtemplate 按钮来下载文件。删除更新面板后一切正常。文件正在顺利下载,但更新面板中的文件没有下载。我想在更新面板中下载文件。 我该怎么办?这是我的代码。

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>

【问题讨论】:

    标签: asp.net pdf crystal-reports export


    【解决方案1】:

    你需要为按钮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);
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 2021-11-15
      • 2012-06-15
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多