![](/img/trans.png)
[英]Why is my HyperLink inside a GridView ItemTemplate not working correctly in ASP.NET?
[英]Change URL of Hyperlink in ASP.net gridview itemTemplate dynamically
我正在創建一個UI,其中包含帶有gridView的itemTemplate。 在ItemTemplate內,我需要一個鏈接,該鏈接將根據我綁定到表的表值動態填充。 換句話說,有時鏈接將指向我的服務器上的文件,有時它將指向另一個URL。 本質上,我需要能夠檢查要綁定到gridview的表上的標志,然后根據表中對應行的數據更新每行itemTemplate。
到目前為止,我有這個標記:
<asp:GridView ID="grdVDocuments"
runat="server"
DataSourceID="sqlDS_wwso"
EnableModelValidation="True"
AutoGenerateColumns="False"
OnRowDataBound="grdVDocuments_RowDataBound"
CssClass="documents_DataTable" AllowPaging="True"
>
<Columns>
<asp:TemplateField HeaderText="Download">
<ItemTemplate>
<a href="/<%# Eval("fileName") %>" target="_blank" id="lnkContent">
<img src="images/orange_download_cropped.png" alt="" border="0"/></a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="displayName" HeaderText="displayName" SortExpression="displayName" />
<asp:BoundField DataField="fileName" HeaderText="fileName" SortExpression="fileName" />
<asp:BoundField DataField="category" HeaderText="category" SortExpression="category" />
<asp:BoundField DataField="sub_category" HeaderText="Sub-Category" SortExpression="sub_category" />
<asp:BoundField DataField="datePosted" HeaderText="datePosted" SortExpression="datePosted" />
</Columns>
</asp:GridView>
以及后面的代碼,由於無法識別超鏈接而遭到轟炸
protected void grdVDocuments_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink myHyperLink = e.Row.FindControl("lnkContent") as HyperLink;
myHyperLink.NavigateUrl = "<someOtherURL>";
}
}
數據表在名為isFile的標志上有一個“位”數據類型。 當isFile = 1時,URL必須為“ ... /”,否則,需要將itemtemplate超鏈接中每一行的URL設置為表中包含URL的另一個字段; 即“ someOtherURL”。
任何幫助表示贊賞;)
謝謝!
您需要在ItemTemplate中使用服務器控件。 因此,您需要將runat="server"
屬性添加到a
標簽。 但是,這是一個HtmlAnchor
元素,您需要HtmlAnchor
轉換為HtmlAnchor
而不是像(代碼隱藏)這樣的Hyperlink
:
...
var myHyperLink = e.Row.FindControl("lnkContent") as HtmlAnchor;
myHyperLink.HRef = "<someOtherURL>";
...
或者,您可以在aspx標記中使用<asp:Hyperlink>
標記(而不是html anchor a
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.