更改ASP HyperLinkColumn的基本URL

时间:2013-03-23 19:49:59

标签: asp.net .net

我有一个简单的代码来列出DataGrid的文件。这是服务器端代码:

Dim dirInfo As New DirectoryInfo(Server.MapPath("~\images\"))
articleList.DataSource = dirInfo.GetFiles("*.*")
articleList.DataBind()

.ASPX页面标记:

    <asp:DataGrid runat="server" id="articleList" Font-Name="Verdana"
        AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee"
        HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
        HeaderStyle-Font-Size="15pt" HeaderStyle-Font-Bold="True">
      <Columns>
        <asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name" 
               HeaderText="File Name" Target="_blank"/>
        <asp:BoundColumn DataField="LastWriteTime" HeaderText="Last Write Time"
            ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
        <asp:BoundColumn DataField="Length" HeaderText="File Size"
            ItemStyle-HorizontalAlign="Right" 
            DataFormatString="{0:#,### bytes}" />
      </Columns>
    </asp:DataGrid> 

它列出http://localhost/images .aspx 文件位置为http://localhost/cp/list.aspx的文件,然后超链接位置如下:http://localhost/cp/myfile.jpg,因为文件位置为{{ 1}} 我该如何解决?

1 个答案:

答案 0 :(得分:2)

您可以使用DataNavigateUrlFormatString

<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name"  DataNavigateUrlFormatString="http://localhost/images/{0}" HeaderText="File Name" Target="_blank"/>

此处{0}将是您的图片名称,即Name列值。