如何在aspx頁面中動態設置超鏈接控件的導航屬性inline(不在gridview中)?動態設置超鏈接控件的導航屬性內聯
我試圖做到以下,但它沒有奏效。
<asp:HyperLink id="MyLink"
NavigateUrl="../mypage.aspx?id=<%= pageid %>"
runat="server">My Page</asp:HyperLink>
如何在aspx頁面中動態設置超鏈接控件的導航屬性inline(不在gridview中)?動態設置超鏈接控件的導航屬性內聯
我試圖做到以下,但它沒有奏效。
<asp:HyperLink id="MyLink"
NavigateUrl="../mypage.aspx?id=<%= pageid %>"
runat="server">My Page</asp:HyperLink>
你可以在代碼隱藏做到這一點:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string pageid = "123";
MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", pageid);
}
}
UPDATE:
現在@Marko伊凡諾夫斯基指出我的意見,這超鏈接是GridView
我沒有在一開始發現的最簡單的辦法是使用數據綁定(<%#
語法)內:
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink
id="MyLink"
NavigateUrl='<%# Eval("pageid", "~/mypage.aspx?id={0}") %>'
runat="server">
My Page
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
在這種情況下,pageid
是數據源的屬性。
更新2:
你真的需要一個服務器端控制?如何:
<a href="<%= this.ResolveUrl("~/mypage.aspx?id=" + pageid) %>">
My Page
</a>
你實際上可以在你的代碼隱藏文件中寫一個簡單的字符串方法。
例
public string formatUrl(string pageId) {
return "../mypage.aspx?id=" + pageId;
}
,然後用它像..
<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink>
提供的pageid存在
這是我試過了,但代碼沒有得到運行,它出來的: 的http://本地主機/ mysite的/ <%= formatUrl(的pageid)%> – dtc 2010-08-29 09:43:33
@metanaito:相同。你解決了這個問題嗎? – abatishchev 2011-11-19 14:39:00
<asp:TemplateField HeaderText="Name" HeaderStyle-Width="100">
<ItemTemplate>
<a href="f.aspx?id=<%# DataBinder.Eval(Container, "DataItem.i")%>">
<asp:Label ID="lblN" Font-Underline="true" runat="server" Width="80px" Text='<%#DataBinder.Eval(Container.DataItem,"n")%>' />
</a>
</ItemTemplate>
</asp:TemplateField>
他提到該鏈接在GridView中:) – Marko 2010-08-29 09:05:47
@Marko,對,謝謝你指出了這一點。我沒有仔細閱讀這個問題:-) – 2010-08-29 09:18:24
沒有probs - +1的一個很好的解決方案 – Marko 2010-08-29 09:21:09