我有一個對象,我從數據庫中檢索,其中一個字段是一個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