2013-03-23 44 views
1

我有一个简单的代码来列出文件DataGrid。它的服务器端代码:更改ASP HyperLinkColumn的基本URL

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自文件的位置是http://localhost/images/myfile.jpg
我该如何解决它?

回答

2

您可以使用DataNavigateUrlFormatString

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

这里{0}将是你的形象的名字即Name列值。