在 gridview 上显示出链接 形式的 , 一点 就可以下载了

解决方案 »

  1.   

    用linkbutton显示文件名,点击以后处理就行了
      

  2.   

    <asp:GridView PageSize="15" cssclass="DataGridStyle" BorderWidth="1" BorderColor="Silver" ID="gdvInfo" runat="server" AutoGenerateColumns="False" AllowPaging="True"  OnRowEditing="gdvInfo_RowEditing" OnRowDeleting="gdvInfo_RowDeleting" DataKeyNames="UNIQUEID" OnPageIndexChanging="gdvInfo_PageIndexChanging" CellPadding="4" ForeColor="#333333">
    <Columns>
    <asp:HyperLinkField HeaderText="记录" Text="查看" HeaderStyle-Width="40px" HeaderStyle-Wrap="false" DataNavigateUrlFields="UniqueID" DataNavigateUrlFormatString="FloodFilesInfo.aspx?cmd=view&amp;&amp;uniqueid={0}" />
                        <asp:TemplateField HeaderText="名称">
                            <ItemTemplate>
        <a runat="server" href='<%#ConstructHref(DataBinder.Eval(Container.DataItem, "uniqueid").ToString(), DataBinder.Eval(Container.DataItem, "FLPTH_").ToString())%>' ID="A1">
        <%# DataBinder.Eval(Container.DataItem, "NM_")%>
        </a>
                            </ItemTemplate>
                        </asp:TemplateField>
    <asp:BoundField DataField="TM_" HeaderText="加入时间" DataFormatString="{0:yyyy年MM月dd日HH时mm分}" HtmlEncode="False"/>
                        <asp:TemplateField HeaderText="删除"  HeaderStyle-Width="40px" HeaderStyle-Wrap="false">
                            <ItemTemplate>
                                <asp:ImageButton runat="server" ID="btnDelete" OnClientClick="return confirm('确定要删除?');" ImageUrl="~/Images/button/delete.gif" CommandName="Delete"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
    <HeaderStyle cssclass="HeaderStyle1"/>
    <RowStyle cssclass="RowStyle1" />
                    <EditRowStyle cssclass="EditRowStyle1" />
                    <SelectedRowStyle cssclass="SelectedRowStyle1" />
                    <PagerStyle cssclass="PagerStyle1" />
                    <AlternatingRowStyle cssclass="AlternatingRowStyle1" /> <FooterStyle CssClass="FooterStyle1" />
                </asp:GridView>
      
    ---------------------------------------------
    EMail:[email protected] 请给我一个与您交流的机会!
      

  3.   

    ASPX:
     <asp:GridView ID="GridView1" runat="server" Width="808px" AutoGenerateColumns="false">
                                              <Columns>
                                                            <asp:TemplateField HeaderText="编号">
                                                                <ItemTemplate>
                                                                    <asp:Label ID="ID" runat="server" Text='<%# Eval("编号")%>'></asp:Label>
                                                                </ItemTemplate>
                                                            </asp:TemplateField>
                                                              <asp:TemplateField HeaderText="ID">
                                                            <ItemTemplate>
                                                            <%# Container.DataItemIndex+1 %>
                                                            </ItemTemplate>
                                                            </asp:TemplateField>
                                                           <asp:TemplateField HeaderText="文件名称" HeaderStyle-Width="280px">
                                                                <ItemTemplate>
                                                                    <asp:Label ID="fname" runat="server" Text='<%# Eval("文件名称")%>' Width="280px"></asp:Label>
                                                                </ItemTemplate>
                                                                <ItemStyle HorizontalAlign="left" />
                                                            </asp:TemplateField>
                                                              <asp:BoundField DataField="文件大小" HeaderText="文件大小" SortExpression="文件大小" />
                                                            <asp:BoundField DataField="文件类型" HeaderText="文件类型" SortExpression="文件类型" />
                                                            <asp:BoundField DataField="发送日期" HeaderText="发送日期" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False" SortExpression="发送日期" />
                                                            <asp:TemplateField HeaderText="发送者">
                                                                <ItemTemplate>
                                                                    <asp:Label ID="teacher" runat="server" Text='<%# Eval("发送者")%>'></asp:Label>
                                                                </ItemTemplate>
                                                            </asp:TemplateField>  
                               <asp:TemplateField HeaderText="删除">
                                                                <ItemTemplate>
                                                                    <asp:CheckBox ID="check" runat="server" />
                                                                </ItemTemplate>
                                                            </asp:TemplateField>
                                     <asp:TemplateField HeaderText="下载" HeaderStyle-Width="40px">
                                                             <ItemTemplate>
                                 <a href='<%# Eval("文件内容")%>'>下载</a>
                                                                </ItemTemplate>
                                                            </asp:TemplateField>
                                               </Columns>
     
                        </asp:GridView>
    _______________
    CS:
    SqlDataAdapter comm1 = new SqlDataAdapter("select * from Tanslation order by 发送日期 desc", conn);
                conn.Open();
                DataSet ds = new DataSet();
                comm1.Fill(ds);
                conn.Close();
            GridView1.DataSource = ds.Tables["article"];
            GridView1.DataBind();
    我是这样的,无法下载,提示:
    无法找到资源。 
    说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。 请求的 URL: /科大NET校园网应用平台/INFOMATION/System.Byte[]
      

  4.   

    谢谢你:
     bdbox() ( ) 信誉:100    Blog   加为好友  2007-07-03 10:14:49  得分: 0 
    _____________________ 
    问题:
    就是以下这句该怎么写?
     <asp:TemplateField HeaderText="下载" HeaderStyle-Width="40px">
              <ItemTemplate>
                  <a href='<%# Eval("文件内容")%>'>下载</a>
           </ItemTemplate>
    </asp:TemplateField>
      

  5.   

    //构造导航URL
        public string ConstructHref(string id,string fileFullPath)
        {
            if (!File.Exists(fileFullPath))
            {
                return "javascript:alert('您所请求的文件在服务器上不存在!')";
            }
            else
            {
                return string.Format("../Download.aspx?FileNameCol=NM_&FilePathNameCol=FLPTH_&TabName=AntiDroughtFile&IDCol=UNIQUEID&&ID={0}&FileType=DocData",id);
            }
        }
      
    ---------------------------------------------
    EMail:[email protected] 请给我一个与您交流的机会!
      

  6.   

    继续问:怎么写这个下载语句啊
    这样写<asp:TemplateField HeaderText="下载" HeaderStyle-Width="40px">
              <ItemTemplate>
                  <a href='<%# Eval("文件内容")%>'>下载</a>
           </ItemTemplate>
    </asp:TemplateField>文件内容的显示是System.Byte[],该怎么写啊?
      

  7.   

    你存到数据库的时候取其文件名啊。“文件内容”就是了。我前没有把这些文件都还在数据库中。而是放在服务器上。
      
    ---------------------------------------------
    EMail:[email protected] 请给我一个与您交流的机会!
      

  8.   

    //构造导航URL
        public string ConstructHref(string id,string fileFullPath)
        {
            if (!File.Exists(fileFullPath))
            {
                return "javascript:alert('您所请求的文件在服务器上不存在!')";
            }
            else
            {
                return string.Format("../Download.aspx?FileNameCol=NM_&FilePathNameCol=FLPTH_&TabName=AntiDroughtFile&IDCol=UNIQUEID&&ID={0}&FileType=DocData",id);
            }
        }
      
    ---------------------------------------------
    1、是要建一个下载的页面:Download.aspx吗?
    2、 public string ConstructHref(string id,string fileFullPath)
    写在CS文件中吗?
    3、("../Download.aspx?FileNameCol=NM_&FilePathNameCol=FLPTH_&TabName=AntiDroughtFile&IDCol=UNIQUEID&&ID={0}&FileType=DocData"格式我不懂
      

  9.   

    在库中加一个文件名字段,再在gridview中加入一个模板列,中间加一个按钮什么的,一点击读出数据中的内容,写到客户个人见解,共同学习
      

  10.   

    http://blog.csdn.net/zhangshg2008/
    有往库中写byte[],和下载文件
    看看吧,对你应该有用
      

  11.   

    寫一個單獨的頁面,然後在GridView 鏈接到上面去,給一個參數然後在頁面裡寫代碼讀出數據庫的 byte[] 然後寫到Response流裡,設置下Response Header
      

  12.   

    <ItemTemplate>
                  <a href='DownFile.aspx?id<%# Eval("id")%>'>下载</a>
           </ItemTemplate>DownFile.aspxPageLoad
    {
      byte[] buffer = 讀數據庫
     
      Response.Clear();
      Response.ContentType = "application/octet-stream";
      Response.AddHeader("Content-Dispostion","attachment;filename=" + 你的文件名);
      Response.BinaryWrite(buffer);
      Response.Flush();
      Response.End();
    }
      

  13.   

    在datagrid中绑定文件名,在点击就下载(传他的地址)就行了
      

  14.   

    <ItemTemplate>
                  <a href='DownFile.aspx?id<%# Eval("id")%>'>下载</a>
           </ItemTemplate>DownFile.aspxPageLoad
    {
      byte[] buffer = 讀數據庫
     
      Response.Clear();
      Response.ContentType = "application/octet-stream";
      Response.AddHeader("Content-Dispostion","attachment;filename=" + 你的文件名);
      Response.BinaryWrite(buffer);
      Response.Flush();
      Response.End();
    }
    ___________________________________________
    谢谢,这位朋友你的方法可能这是最接近正确的了,但是我填写代码还是有错:
            int id = Int32.Parse(Request.QueryString["ID"]);
            int size = Int32.Parse(Request.QueryString["size"]);
            string name = (string)Request.QueryString["file"];
            SqlCommand comm = new SqlCommand("select * from Tanslation where 编号=@id", conn);
            comm.Parameters.AddWithValue("@id", id);
            conn.Open();
            SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
            reader.Read();
            Response.ContentType = (string)reader["文件类型"];
            Response.OutputStream.Write((byte[])buffer, 0, size);
            Response.Clear();
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("Content-Dispostion", "attachment;filename=" + name);
            Response.BinaryWrite(reader["文件内容"]);
            Response.Flush();
            Response.End();______________________
    我就是不理解byte[] buffer = 讀數據庫
    这句怎么写啊?