一个可能的解决方案可能是TemplateField
为您的超链接列使用 a:
<asp:GridView AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container.DataItem, "FilePath") %>'>
<%# DataBinder.Eval(Container.DataItem, "FilePath")%>
</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
将创建所需的输出:
<tr>
<td>
<a href='c:/directory/file.xxx'>c:/directory/file.xxx</a>
</td>
</tr>
似乎 aHyperLinkField
不接受其DataNavigateUrlFields
属性的文件路径。
我试图通过设置DataNavigateUrlFormatString
属性来超越它:
<asp:HyperLinkField DataNavigateUrlFormatString="file:///{0}" DataNavigateUrlFields="FilePath" DataTextField="FilePath" />
但问题仍然存在,只会产生
<tr>
<td>
<a>c:/directory/file.xxx</a>
</td>
</tr>