<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/> <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();
}