Asp.net

動態設置超連結控制項的 NavigateUrl 屬性內聯

  • June 25, 2018

如何在 aspx 頁面中動態設置獨立(不在 gridview 中)超連結控制項的 NavigateUrl 屬性內聯?

我嘗試執行以下操作,但沒有成功。

<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);
   }
}

更新:

現在@Marko Ivanovski 在評論中指出我這個超連結在一個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>

引用自:https://stackoverflow.com/questions/3594143