0

PDF を作成し、Web サイト内のファイルに保存するアプリケーションがあります。これらの各ファイルをループして、特定の名前のドキュメントを見つける必要があります。問題なくそのリストを作成できますが、リンクを作成するための最良の方法に困惑しています

これは私がこれまでに持っているものです:

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 は列名であるため簡単です。

これを取る場所について何か考えはありますか?私はさまざまなソリューションをすべて受け入れることができます。

4

1 に答える 1

1

DataBinderクラスは、オプションのフォーマットを使用してDataItemのプロパティをレンダリングするための優れた方法です。あなたの場合、DataItemは単なる文字列であるため、DataBinderを使用する必要はありません。次のように、DataItemを直接使用できます。

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

ただし、このコードではリンクは提供されません。あなたはこのようなことをしたいです:

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

また、ファイル名からパスを取り除く必要があります。いくつかのLINQを使用した例を次に示します(ファイルの先頭に「usingSystem.Linq」を追加する必要があります。

rptPDFLinks.DataSource = fileList.Select(x => System.IO.Path.GetFileName(x));
rptPDFLinks.DataBind(); 
于 2012-09-28T03:42:12.580 に答える