GridView 中下载文件

GridView 中每一行都有一个File Name 列,显示文件名称,点击后可下载.

前台GridView :

<asp:TemplateField HeaderText="File Name" SortExpression="FULLFILENAME">
                  <itemtemplate>
                    <asp:LinkButton id="lbnFileName" οnclick="lbnFileName_Click" runat="server" Text='<%# Eval("FULLFILENAME") %>'></asp:LinkButton>
                    <asp:Label id="lblGUIDFILENAME" runat="server" Text='<%# Eval("GUID_FILENAME") %>' Visible="False"></asp:Label>
                    <asp:Label id="lblTYPENAME" runat="server" Text='<%# Eval("TYPENAME") %>' Visible="False"></asp:Label>
                  </itemtemplate>
</asp:TemplateField> 

后台cs:

 

ExpandedBlockStart.gif 代码
protected   void  lbnFileName_Click( object  sender, EventArgs e)
    {
        
try
        {
            GridViewRow objGridViewRow 
=  (GridViewRow)((LinkButton)sender).NamingContainer;

            
string  strDQAManualFolder  =  Server.MapPath( @" ~\DOC\Manual " );
            
string  strFileName  =  ((LinkButton)objGridViewRow.FindControl( " lbnFileName " )).Text;
            
string  strGuid  =  ((Label)objGridViewRow.FindControl( " lblGUIDFILENAME " )).Text;
            
string  strFileType  =  ((Label)objGridViewRow.FindControl( " lblTYPENAME " )).Text;

            String fileName 
=  HttpUtility.UrlEncode(strFileName);
            FileInfo file 
=   new  FileInfo(strDQAManualFolder  +   " \\ "   +  strGuid  +   ' . '   +  strFileType);
            
if  (file.Exists  ==   false )
            {
                
this .ClientScript.RegisterStartupScript( this .GetType(),  " FileNotFound " " alert('System can not find the file!'); " true );
                
return ;
            }
            
switch  (strFileType)
            {
                
case   " doc " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/octet-stream " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " ppt " :
                
case   " pps " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/vnd.ms-powerpoint " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " xls " :
                
case   " csv " :
                
case   " xml " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/vnd.ms-excel " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " pdf " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/pdf " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " htm " :
                
case   " html " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " text/html " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " gif " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " image/gif " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " jpg " :
                
case   " jpeg " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " image/jpeg " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " rtf " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/rtf " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
case   " asp " :
                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);
                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " text/asp " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;

                
default :

                    Response.Clear();
                    
// Response.HeaderEncoding = System.Text.;
                    
// 欲讓使用者看到的檔案名稱
                    Response.AddHeader( " Content-Disposition " " filename= "   +  fileName);

                    
// 檔案大小
                    Response.AddHeader( " Content-Length " , file.Length.ToString());
                    
// 檔案類型
                    Response.ContentType  =   " application/octet-stream " ;
                    
// 顯示檔案下載視窗
                    Response.TransmitFile(file.FullName);
                    Response.End();
                    
break ;
            }

        }
        
catch  (Exception ex)
        {
            
this .ShowMessage( " Download function exception! " );
            Response.Write(ex.ToString());
        }

    }

 

 

转载于:https://www.cnblogs.com/andycai/archive/2009/12/15/1624749.html

一、表头表尾 1、自定义多行表头,列合并,行合并 2、删除表身指定列、行 3、固定表头,向下拉动滚动条时,表头固定不动 4、表脚行统计,总计、平均值 二、导入导出 1、导出Excel,Word 2、导入Excel 三、多层嵌套 1、在父GridView的编辑模板嵌套一个子GridView 2、三层GridView嵌套 四、分页排序 1、分页 2、列排序,点击列升序、降序排序 五、结合控件 1、CheckBox控件,多选、全选 2、DropDownList控件 3、隐藏控件,当选择处理状态选备注时,隐藏textbox显示 4、radio控件,选获取GridView表主键 5、GridViewDropDownList绑定数据,直接绑定显示,无需点击编辑按纽。 6、JavaScript操作checbox实现全选,多选 六、设置属性 1、JavaScript设置GridView行的背景颜色,单偶行的背景颜色,鼠标停留行背景,鼠标选时的行背景 2、GridView的JavaScript的行单击,双击、删除提示框、快捷键事件 3、GridView设置属性,单元格文本颜色,单元格背景颜色,表增加空行 七、无代码 GridView排序、发送邮件、点击行查看详情,内容过长截取 八、选增删改 1、GridView自带的选、编辑、删除,即CommandField 2、GridView添加记录,在GridView表脚添加控件,用添加记录 3、更新所有记录,GridView直接绑定控件,然后更新 九、主键索引 根据主键多条记录删除,单条记录删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值