在另一列中显示文件的日期,并在gridview中显示文件名

shaiToro

在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控件上。

阿林丹·纳亚克(Arindam nayak)

首先,创建一个具有必需属性的类,例如。

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

显示文件名

如何在文件传输中显示文件名?

在列表数组(Java)中显示文件名差异

在XFCE面板按钮中仅显示文件名

在标签文本中显示文件名

显示文件名及其日期时间的 Linux 命令

LS - 按日期排序,只显示文件名

如何创建一个在javascript中显示文件名的日志系统

上传后显示文件名

如何减少显示文件名?

在另一个目录中显示文件的修改日期?

如何在 git 中显示文件的所有不同的历史文件名/文件路径?

Java:jlist中的文件列表仅显示文件名和扩展名

如何使用python显示文件夹中Word文档的文件名?

Bootstrap 4自定义文件上传未在标签中显示文件名

在ListView中显示文件名并存储文件路径

如何遍历匹配变量的文件并仅在bash中显示文件名?

在listView和imagelist中显示文件名。显示所选项目的文件名

在gridview中显示文件夹内容

显示文件名并在JTree的文件夹下选择它

替换字符串中的本地路径以仅显示文件名

如何使用 find、ls 命令根据数组中的条目显示文件名?

如何在vim中显示文件名,行数和字符数?

bash 提示:如何在 PS1 中仅显示文件名?

尝试在 ComboBox.Items.AddRange() 中显示文件名

为什么Windows 10中的“深色主题”不以浅色显示文件名?

如何在 JavaFX TreeView 中仅显示文件名?

嵌入式 PDF 在 IE 中仅显示文件名,在 chrome 中正常工作

如何使用c中的系统调用根据当前目录的大小以升序显示文件名?