Динамически установить свойство NavigateUrl элемента управления гиперссылки встроенным

13
задан Lundin 25 June 2018 в 17:23
поделиться

2 ответа

Вы можете сделать это в отделенном коде:

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>
28
ответ дан 1 December 2019 в 19:58
поделиться

Вы действительно можете написать простой строковый метод в файле кода программной части.

Пример

public string formatUrl(string pageId) {
    return "../mypage.aspx?id=" + pageId;
}

А затем используйте его как..

<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink>

если существует идентификатор страницы

4
ответ дан 1 December 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: