2014-11-11 2 views
0

격자보기로 묶인 링크 버튼을 사용하여 pdf 파일을 다운로드해야합니다. pdb를 varbinary 형식으로 데이터베이스 테이블에 업로드했습니다. 아래 테이블 cad_file 열에는 pdf 파일이 들어 있습니다. "version_no"드롭 다운 목록을 클릭하는 동안 pdf 및 기타 모든 데이터를 gridview와 바인드해야합니다. 그리고 그것을 클릭하여 pdf를 다운로드하고 싶습니다. 어떻게해야합니까? 적절한 해결책을 찾도록 도와주세요. 고맙습니다.링크 버튼을 사용하여 PDF 파일을 다운로드하는 방법은?

코드 :

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 :

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 :

enter image description here

enter image description here

DB :

enter image description here

ScreenShot1 :

enter image description here

ScreenShot2 :

enter image description here

답변

0

링크 버튼을 사용하여 PDF 파일 다운로드에 대한 작동 코드입니다. 귀중한 의견을 보내 주셔서 감사합니다.

코드 :

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 [email protected]"; 
        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 :

<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 :

enter image description here

-1

이 코드를보십시오. 드롭 다운 SelectedIndexChanged

protected void ddlVersionNo_SelectedIndexChanged(object sender, EventArgs e) 

{ 
    int Demo=ddlVersionNo.SelectedValue; 
} 

GridViewRowCommand는 아래

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(); 
     } 
} 
관련 문제