1

私がここでやろうとしているのは、ユーザーがクリックしてダウンロードまたは開くことができるサーバー上のファイルのリストをデータグリッドに表示させることです。リストにはファイルが正常に入力され、フォルダー内のすべての pdf ファイルの完全なリストが取得されます。データグリッドでそれらをクリックすると、リンクはアプリケーションのルート ディレクトリに送られ、適切なフォルダには送られません。 データグリッドのハイパーリンク列に移動先を伝えるにはどうすればよいですか?

C# コード ビハインド:

DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~") + "/Assets/reports/");
gridList.DataSource = dir.GetFiles("*.pdf");
gridList.DataBind();

asp

<asp:DataGrid runat="server" id="gridList" Font-Name="Verdana"
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name" 
       HeaderText="File Name"/>
</Columns>
</asp:DataGrid>  

これを次の場所に配置してみました:

 NavigateUrl =  '<%# "~/Assets/reports/" + Eval("Name") %>'>

しかし、「データバインディング式は、データバインディングイベントを持つオブジェクトでのみサポートされています」というメッセージが表示されます。エラー

4

1 に答える 1

3

どうぞ。

<asp:HyperLinkColumn DataNavigateUrlField="Name" 
  DataTextField="Name" 
  HeaderText="File Name"
  DataNavigateUrlFormatString="~\examfilemanager\{0}" />

ここで見つけました。 asp.netDataGridファイル構造とそれにリンクする

于 2012-05-29T17:31:16.510 に答える