我有一个简单的代码来列出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}}
我该如何解决?
答案 0 :(得分:2)
您可以使用DataNavigateUrlFormatString
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name" DataNavigateUrlFormatString="http://localhost/images/{0}" HeaderText="File Name" Target="_blank"/>
此处{0}
将是您的图片名称,即Name
列值。