Вы можете сделать это в отделенном коде:
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>
Вы действительно можете написать простой строковый метод в файле кода программной части.
Пример
public string formatUrl(string pageId) {
return "../mypage.aspx?id=" + pageId;
}
А затем используйте его как..
<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink>
если существует идентификатор страницы