2013-03-12 27 views
0

我有一个对象,我从数据库中检索,其中一个字段是一个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> 

或:

回答

1

刚刚尝试,这可能是它会帮助你。在这里,我用DataNavigateUrlFormatString Property它用于

Gets or sets the string that specifies the format in which the URLs for the hyperlinks in a HyperLinkField object are rendered.

<asp:HyperLinkField DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download" DataNavigateUrlFormatString="{0}" /> 

编辑:

你可以把服务器上的位置,你的文件和你的位置字段都会有这样

虚拟路径现在,您可以将HyperLinkField中的网址格式化为http://localhost//Download/{0},其中{0}表示MusicFiles/File1.avi或您的location字段值

<asp:HyperLinkField DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download" DataNavigateUrlFormatString="http://localhost//Download/{0}" /> 

我认为这将帮助您部署它时,用户可以从您的服务器上下载文件。

+0

没有改变任何东西,但谢谢你。这似乎与asp如何解析网址有关。空间会成为一个问题? – Jim 2013-03-12 13:55:53

+0

让你的url包含http或类似这个协议的东西。是的,空间可能是一个问题?你能展示一下你的位置字段有什么确切的价值。 – Sachin 2013-03-12 14:01:18

+0

这里是一个例子:C:/ Program Files(x86)/foo/bar/test_file.avi – Jim 2013-03-12 14:02:58

0

尝试这种方式

<%# Eval("location")%> 
相关问题