2013-03-23 55 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列值。