Repeter控件+带参数linkbutton下载

本文介绍了一个使用ASP.NET实现的文件管理与下载系统,详细展示了如何通过Repeater控件展示文件信息并提供下载功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<asp:Repeater ID="Repeater1" runat="server" onitemcommand="down_file_Click">
    <ItemTemplate>
      
          <table width="90%" align="center" border="1" cellpadding="1" cellspacing="0" bgcolor="#e1e1e1" class="title_font">
           <tr>
                <td class="title_font" width="10%"  align="center">文件名称:</td>
                <td width="20%"align="center"><b><%#Eval("文件名称") %></b></td>
                <td  width="8%"align="center">类型:</td>
                <td width="8%"align="center"><%#Eval("类型") %></td>
                <td width="8%"align="center">版本:</td>
                <td  align="center"><%#Eval("版本") %></td>
                <td width="8%" align="center">语言:</td>
                <td  width="8%"align="center"><%#Eval("语言") %></td>
                <td width="8%" align="center">文件大小:</td>
                <td  width="8%"align="center"><%#Eval("文件大小") %></td>
            </tr>
            <tr align="center">
                <td >创建人:</td>
                <td ><%#Eval("创建人") %></td>
                <td >创建时间:</td>
                <td ><%#Eval("创建时间") %></td>
                <td >更新时间</td>
                <td ><%#Eval("更新时间") %></td>
                <td >下载次数:</td>
                <td ><%#Eval("下载次数") %></td>
                <td  width="10%" colspan="2" align="center"><asp:LinkButton ID="down_file" CommandArgument='<%#Eval("link") %>' runat="server">下载文件</asp:LinkButton>
                </td>
            </tr>
            <tr>
                <td colspan="10">描述:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:Label ID="Description" runat="server"  Font-Size="14px" Text='<%#Eval("描述") %>'></asp:Label> </td>
            </tr>
        </table>
    <hr  style="width:90%"/>
    </ItemTemplate>
</asp:Repeater>

 

 

.cs

 

//linkbutton事件
 protected void down_file_Click(object sender, RepeaterCommandEventArgs e)
        {
            string filePath = e.CommandArgument.ToString();  //获得参数
            FileStream fs = null;
            try
            {
                fs = File.OpenRead(filePath);
                byte[] buffer = new byte[1024];
                long count = 1024;
                Response.Buffer = true;
                Response.AddHeader("Connection", "Keep-Alive");
                Response.ContentType = "application/octet-stream";
                Response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(filePath));//下载时要保存的默认文件名
                Response.AddHeader("Content-Length", fs.Length.ToString());
                while (count == 1024)
                {
                    count = fs.Read(buffer, 0, 1024);
                    Response.BinaryWrite(buffer);
                }
            }
            catch(Exception ex)
            {
                return;
            }
            finally
            {
                fs.Close();
            }
        
        }

 


//数据邦定
 public void GrvDataBin(List<FileMeta> list_fm)
        {

            DataView dv = new DataView();
            DataTable dt = new DataTable("fileMeta");
            {
                dt.Columns.Add("文件名称");
                dt.Columns.Add("描述");
                dt.Columns.Add("类型");
                dt.Columns.Add("创建时间");
                dt.Columns.Add("创建人");
                dt.Columns.Add("版本");
                dt.Columns.Add("文件大小");
                dt.Columns.Add("更新时间");
                dt.Columns.Add("语言");
                dt.Columns.Add("下载次数");
                dt.Columns.Add("link");
            }
            foreach (FileMeta fileM in list_fm)
            {
                DataRow row = dt.NewRow();
                row[0] = fileM.FileTitle;
                row[1] = fileM.Description;
                row[2] = fileM.Type;
                row[3] = fileM.CreateTime.ToShortDateString();
                row[4] = fileM.Creater;
                row[5] = fileM.FileList[0].Version;
                row[6] = fileM.FileList[0].FileSize;
                if (fileM.FileList[0].UpdateTime == null)
                {
                    row[7] = "未更新";
                }
                else
                {
                    row[7] = fileM.FileList[0].UpdateTime;
                }
                row[8] = fileM.FileList[0].Languge;
                row[9] = fileM.ClickNum;
                row[10] = fileM.FileList[0].FileLink;
                dt.Rows.Add(row);
            }
            dv.Table = dt;
            Repeater1.DataSource = dv;
            Repeater1.DataBind();
       
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值