我正在使用DataGrid:
<asp:DataGrid runat="server" ID="articleList" UseAccessibleHeader="true" AutoGenerateColumns="false" AlternatingItemStyle-BackColor="#EEEEEE" HeaderText="File Name">
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="DirectoryName" DataTextField="Name" HeaderText="File Name" />
<asp:BoundColumn DataField="LastWriteTime" HeaderText="Modified" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:f}" />
<asp:BoundColumn DataField="Length" HeaderText="Size" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,### bytes}" />
<asp:BoundColumn DataField="Extension" HeaderText="Type" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:DataGrid>
这是我的代码隐藏页面:
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("examfilemanager"));
articleList.DataSource = dirInfo.GetFiles();
articleList.DataBind();
}
此目录中的文件是:
01.jpg
02.jpg
MyDoc.doc
我正在尝试为客户端提供直接链接以单击并下载此链接。似乎我能得到的唯一链接是名称“01.jpg”,它位于文件夹examfilemanager中。
文件信息属性的Name属性仅返回名称。 (01.JPG)
链接的href是01.jpg,我需要examfilemanager/01.jpg
我怎样才能做到这一点?
答案 0 :(得分:3)
试试这个:
<asp:HyperLinkColumn DataNavigateUrlField="Name"
DataTextField="Name"
HeaderText="File Name"
DataNavigateUrlFormatString="~\examfilemanager\{0}" />