我有一个对象,我从数据库中检索,其中一个字段是一个URL。我在gridview中显示这些数据,我希望URL列是一系列链接,指向“下载”,它指向相应的URL。设置一个gridview列来包含链接,其中绑定数据是一个URL列表
目前,我有以下几点:
<asp:GridView ID="my_gv" runat="server" AutoGenerateColumns = "false"
GridLines="None" Width="100%" AllowSorting="True"
CssClass="table table-bordered table-condensed">
<AlternatingRowStyle BackColor="#F5F5F5" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download" />
</Columns>
</asp:GridView>
这似乎并不奏效。条目像链接一样是蓝色的,但用鼠标悬停不会实际调用URL(游标不会更改为“链接”游标)。看看生成的HTML,它们是<a>
标签,但它们不包含href
属性。为什么?我错过了什么让它可以工作?我使用以下内容填充:
private void populateElementView()
{
List<MyElement> elements = database.getGeneratedElements();
// elements has a .location property
my_gv.DataSource = elements;
my_gv.DataBind();
}
有关更多信息,URL指向计算机上的文件。用URL“测试”手工插入一个项目实际上是可行的,而实际的文件路径却不适用。如果您使用的是另一种控制只是绑定值NavigateUrl这样
<asp:HyperLink ID="HyperLink1" Text="Download link" NavigateUrl='<%# Eval("location")%>' runat="server"></asp:HyperLink>
或:
没有改变任何东西,但谢谢你。这似乎与asp如何解析网址有关。空间会成为一个问题? – Jim 2013-03-12 13:55:53
让你的url包含http或类似这个协议的东西。是的,空间可能是一个问题?你能展示一下你的位置字段有什么确切的价值。 – Sachin 2013-03-12 14:01:18
这里是一个例子:C:/ Program Files(x86)/foo/bar/test_file.avi – Jim 2013-03-12 14:02:58