How can I dynamically set a stand alone(not in gridview) hyperlink control's NavigateUrl property inline in the aspx page?
I have tried to do the following, but it did not work.
<asp:HyperLink id="MyLink"
NavigateUrl="../mypage.aspx?id=<%= pageid %>"
runat="server">My Page</asp:HyperLink>
You could do this in the codebehind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string pageid = "123";
MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", pageid);
}
}
UPDATE:
Now that @Marko Ivanovski pointed me in the comments that this hyperlink is inside a GridView
which I didn't notice in the beginning the easiest would be to use databinding (<%#
syntax):
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink
id="MyLink"
NavigateUrl='<%# Eval("pageid", "~/mypage.aspx?id={0}") %>'
runat="server">
My Page
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
In this case pageid
is a property of the data source.
UPDATE 2:
Do you really need a server side control? How about:
<a href="<%= this.ResolveUrl("~/mypage.aspx?id=" + pageid) %>">
My Page
</a>
You can actually write a simple string method in your codebehind file.
Example
public string formatUrl(string pageId) {
return "../mypage.aspx?id=" + pageId;
}
And then use it like..
<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink>
provided pageid exists
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With