asp.net DataGrid文件结构并链接回来

时间:2012-04-16 16:17:10

标签: asp.net

我正在使用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我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

试试这个:

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