将文件说明添加到网格视图
本文关键字:网格 视图 添加 文件 说明 | 更新日期: 2023-09-27 18:32:03
我在 ASP.NET 中有一个GridView
,它显示某些文件,用户可以根据自己的角色下载。我已经设法从目录中填充而没有问题。但是我的问题是我需要为每个文件添加一个描述列,即
测试.pdf会有一些描述Test2.pdf将有另一个描述,依此类推
我似乎无法弄清楚如何为描述列增加价值。文件名列值当然来自目录。
请在下面找到我的代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Text" HeaderText="File Name" />
<asp:BoundField HeaderText="Description" />
<asp:TemplateField HeaderText="View Details">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text="Download" CommandArgument='<%# Eval("Value") %>' runat="server" OnClick="DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
后端 C# 代码是
string[] filePaths = Directory.GetFiles(Server.MapPath("~/document/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
// How can I add the description name for each file
}
GridView1.DataSource = files;
GridView1.DataBind();
提前感谢您的帮助
我相信
,创建一个Class
来表示要显示的数据将是最好的。
public class FileDetails
{
public string FileName { get; set; }
public string FileDescription { get; set; }
}
现在,您将创建上述类的List
。
string[] filePaths = Directory.GetFiles(Server.MapPath("~/document/"));
List<FileDetails> files = new List<FileDetails>();
foreach (string filePath in filePaths)
{
//Line 1
string filename = Path.GetFileName(filePath);
// Line 2
files.Add(new FileDetails() { FileName = filename,
FileDescription = filename+"This is a test file" });
}
GridView1.DataSource = files;
GridView1.DataBind();
您绝对可以使用不同的方法来填充第 2 行FileDescription
上面的字段。
ASPX 代码将类似于以下内容:
<asp:BoundField DataField="FileName" HeaderText="File Name" />
<asp:BoundField DataField="FileDescription " HeaderText="File Description" />