62,074
社区成员
发帖
与我相关
我的任务
分享
前台:
<asp:Repeater ID="fileList" runat="server" OnItemCommand= "Repeater1_ItemCommand" >
<ItemTemplate>
<dl class="Middle TC">
<dd class="Left" style="width: 50px">
<%#Eval("BidID") %>
</dd>
<dd class="Right" style="width: 50px">
<asp:LinkButton ID="lbtDown" runat="server" CommandName="Down" CommandArgument='<%#Eval("BidFile") %>'>点击下载</asp:LinkButton></dd>
<dd class="Right" style="width: 120px">
<%#Convert.ToDateTime(Eval("BidAddTime")).ToString("yyyy-MM-dd HH:mm:ss")%></dd>
<dd class="TL">
<%#Eval("BidTitle") %></dd>
</dl>
</ItemTemplate>
</asp:Repeater>
后台:
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.CommandName == "Down")
{
LinkButton delete = (LinkButton)e.Item.FindControl( "lbtDown");
string fileName = HttpContext.Current.Server.UrlEncode(e.CommandArgument.ToString());
string filePath = HttpContext.Current.Server.MapPath("~/"+e.CommandArgument.ToString());
FileInfo info = new FileInfo(filePath);
long fileSize = info.Length;
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
//不指明Content-Length用Flush的话不会显示下载进度
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(info.FullName);
Response.Flush();
Response.Close();
}
}
}
public void ShowLoad()
{
DownLoad.Version = "cn";
DownLoad.IsChecked = true;
DataTable dt = WebManager.List(DownLoad, "", "[ID],[Title],[FileUrl]", "&version=&ischecked=", "[OrderNo]");
DLLoadListInfo.DataSource = dt.DefaultView;
DLLoadListInfo.DataBind();
}
<asp:DataList ID="DLLoadListInfo" runat="server">
<ItemTemplate>
<table width="230" border="0" style="margin-left:10px;" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><a href="<%#Eval("FileUrl") %>">·<%#Eval("Title") %></a></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>