在pageload()...
if (!IsPostBack)
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
}
GridView1.DataSource = files;
GridView1.DataBind();
}
文件存储在“上传”文件夹中。文件名格式为“ date_filename”,例如“ 01-12-2014_filename”。谁能帮我如何在gridview的第一列和第二列中显示日期。
进一步的代码... Gridview
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" EmptyDataText = "No files available at the moment...">
<Columns>
<asp:BoundField DataField="Text" HeaderText="File Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text = "Download" CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
下载部分...
protected void DownloadFile(object sender, EventArgs e)
{
string filePath = (sender as LinkButton).CommandArgument;
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.WriteFile(filePath);
Response.End();
}
我仅通过提取日期创建了文件名的子字符串...但没有白费,我可以将其显示在gridview控件上。
首先,创建一个具有必需属性的类,例如。
public class Thing
{
public string FilePath { get; set; }
public string FileName { get; set; }
public string FileDate { get; set; }
}
然后,创建一个List,并填充所需的值。
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
List<Thing> lst = new List<Thing>();
foreach (string filePath in filePaths)
{
string filename = Path.GetFileName(filePath); // you might add NULL check and _ check, if that has 2 elements after split.
lst.Add(new Thing() { FileDate = filename.Split('_')[0], FileName = filename.Split('_')[1], FilePath = filePath });
}
GridView1.DataSource = lst;
GridView1.DataBind();
服务器端代码更改已完成,现在通过以下命令更改aspx端,以便它将在中具有必需的property
名称databind
。
<asp:BoundField DataField="FileName" HeaderText="File Name" />
<asp:BoundField DataField="FileDate" HeaderText="File Date" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text="Download" CommandArgument='<%# Eval("FilePath") %>' runat="server" OnClick = "DownloadFile" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句