使用文件夹中文件列表中的链接创建asp:Repeater

时间:2012-09-28 03:28:14

标签: c# asp.net asprepeater

我有一个创建PDF的应用程序,并将它们存储在网站的文件中。我需要遍历每个文件并查找具有特定名称的文档。我能够创建该列表而不会出现任何问题,但是却难以用最好的方法来创建我的链接

这是我到目前为止所做的:

string rootFolderPath = Server.MapPath("~/Forms/Offers");
string listOfBidSheets = @"*" + prospect.LastName.Trim() + "_" + prospect.FirstName.Trim() + "*";
string[] fileList = System.IO.Directory.GetFiles(rootFolderPath, listOfBidSheets);

if (fileList.Length > 0)
{  
    rptPDFLinks.DataSource = fileList;
    rptPDFLinks.DataBind();
}

困扰我的部分是放在代码前端的内容:

<li><%# DataBinder.Eval(Container.DataItem, "Item") %></li>

通常,当我绑定到转发器时,Container.DataItems很容易,因为它们是列名。

有关何处采取此问题的任何想法?我对所有的解决方案持开放态度。

1 个答案:

答案 0 :(得分:1)

DataBinder类是使用一些可选格式呈现DataItem的属性的好方法。在您的情况下,DataItem只是一个字符串,因此您不想使用DataBinder。您可以直接使用DataItem:

<li><%# Container.DataItem %></li> 

此代码不会为您提供链接。你想做这样的事情:

<li><a href="/Forms/Offers/<%# Container.DataItem %>"><%# Container.DataItem %></a></li>

您还需要从文件名中删除路径。这是使用一些LINQ的示例(您需要在文件顶部添加'using System.Linq':

rptPDFLinks.DataSource = fileList.Select(x => System.IO.Path.GetFileName(x));
rptPDFLinks.DataBind();