首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用链接按钮下载PDF文件?

如何使用链接按钮下载PDF文件?
EN

Stack Overflow用户
提问于 2014-11-11 06:35:55
回答 2查看 3.9K关注 0票数 0

我必须下载pdf文件使用链接按钮,是与网格视图绑定。我已经将pdf上传到数据库表中,就像var二进制格式一样。下表cad_file列包含pdf文件。当点击"version_no“下拉列表时,我必须用网格视图绑定pdf和所有其他数据。通过点击,我想下载pdf。我怎么能这么做。帮我找个合适的解决办法。谢谢。

代码:

代码语言:javascript
复制
protected void ddlVersionNo_SelectedIndexChanged(object sender, EventArgs e)
    {
        ShadingAnalysisDataSetTableAdapters.tbl_CadFileUploadTableAdapter cd;
        cd = new ShadingAnalysisDataSetTableAdapters.tbl_CadFileUploadTableAdapter();
        DataTable dt = new DataTable();
        dt = cd.GetGvCad2(ddlSiteID.SelectedValue, int.Parse(ddlVersionNo.SelectedValue));
        gvCadPdf.DataSource = dt;
        gvCadPdf.DataBind();
    }

SQL:

代码语言:javascript
复制
SELECT Id, District, SiteName, Site_ID, Created_Date, Created_By, State, Updated_Date, Updated_By, Version_Status, Version_No, Cad_File, Cad_File_Name FROM tbl_CadFileUpload WHERE (Site_ID = @Site_ID) AND (Version_No = @Version_No)

ASPX:

DB:

ScreenShot1:

ScreenShot2:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-12 06:50:07

下面是使用链接按钮下载pdf的工作代码。谢谢大家的宝贵意见。

代码:

代码语言:javascript
复制
  protected void lnkDownload_Click(object sender, EventArgs e)
        {
            LinkButton lnkbtn = sender as LinkButton;
            GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
            int fileid = Convert.ToInt32(gvCadPdf.DataKeys[gvrow.RowIndex].Value.ToString());
            string name, type;
            using (SqlConnection con = new SqlConnection(strCon))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = " SELECT Id, Cad_File, Cad_File_Name, type From  tbl_CadFileUpload   WHERE Id=@Id";
                    cmd.Parameters.AddWithValue("@id", fileid);
                    cmd.Connection = con;
                    con.Open();
                    SqlDataReader dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        Response.ContentType = dr["type"].ToString();
                        Response.AddHeader("Content-Disposition", "attachment;filename=\"" + dr["Cad_File_Name"] + "\"");
                        Response.BinaryWrite((byte[])dr["Cad_File"]);
                        Response.End();
                    }
                }
            }
        }

ASPX:

代码语言:javascript
复制
 <asp:GridView ID="gvCadPdf" runat="server" OnSelectedIndexChanged="gvCadPdf_SelectedIndexChanged"  AutoGenerateColumns="False" DataKeyNames="Id">
 <Columns>
 <asp:BoundField DataField="Id" HeaderText="Sl No" ReadOnly="True" SortExpression="Id" />
 <asp:BoundField DataField="State" HeaderText="State" ReadOnly="True" SortExpression="State" />
 <asp:BoundField DataField="District" HeaderText="District" ReadOnly="True" SortExpression="District" />
 <asp:BoundField DataField="SiteName" HeaderText="Site Name" ReadOnly="True" SortExpression="SiteName" />
 <asp:BoundField DataField="Site_ID" HeaderText="Site ID" ReadOnly="True" SortExpression="Site_ID" />
 <asp:BoundField DataField="Created_Date" HeaderText="Created Date" ReadOnly="True" SortExpression="Created_Date" />
 <asp:BoundField DataField="Updated_Date" HeaderText="Updated Date" ReadOnly="True" SortExpression="Updated_Date" />
 <asp:BoundField DataField="Created_By" HeaderText="Created By" ReadOnly="True" SortExpression="Created_By" />
 <asp:BoundField DataField="Updated_By" HeaderText="Updated By" ReadOnly="True" SortExpression="Updated_By" />
 <asp:BoundField DataField="Version_No" HeaderText="Version No" ReadOnly="True" SortExpression="Version_No" />
 <asp:BoundField DataField="Cad_File_Name" HeaderText="Cad File Name" ReadOnly="True" SortExpression="Cad_File_Name" />

 <asp:TemplateField HeaderText="FilePath">
 <ItemTemplate>
 <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>
 </ItemTemplate>
 </asp:TemplateField>

 </Columns>
</asp:GridView>

DB:

票数 0
EN

Stack Overflow用户

发布于 2014-11-11 06:46:38

试试这段代码。DropDown SelectedIndexChanged

代码语言:javascript
复制
protected void ddlVersionNo_SelectedIndexChanged(object sender, EventArgs e)

{
    int Demo=ddlVersionNo.SelectedValue;
}

GridViewRowCommand

代码语言:javascript
复制
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "LinkButton")
        {
             ShadingAnalysisDataSetTableAdapters.tbl_CadFileUploadTableAdapter cd;
        cd = new ShadingAnalysisDataSetTableAdapters.tbl_CadFileUploadTableAdapter();
        DataTable dt = new DataTable();
        dt = cd.GetGvCad2(ddlSiteID.SelectedValue, int.Parse(Demo));
        gvCadPdf.DataSource = dt;
        gvCadPdf.DataBind();
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26859010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档