powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамическое создание гиперссылки в masterpage
3 сообщений из 3, страница 1 из 1
Динамическое создание гиперссылки в masterpage
    #39677283
Malyav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В мастерпэйдж после прохождения авторизации формируется выпадающее меню со ссылками.
Я пытаюсь добавить к ним свою с текстом "Мой список" и адресом href="~/MyLists?UserID=XYZ".
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<LoggedInTemplate>
    <ul runat="server" class="nav navbar-nav navbar-right" id="LogPanel">

        <li><a runat="server" href="~/MyLists?UserID=XYZ">Мой список</a></li>

        <li><a runat="server" href="~/Account/Manage" title="Manage your account"><%: Context.User.Identity.GetUserName()  %></a></li>
        <li><asp:LoginStatus runat="server" ID="itmLogout" LogoutAction="Redirect" LogoutText="Выход" LogoutPageUrl="~/" OnLoggingOut="Unnamed_LoggingOut" />
        </li>
    </ul>
</LoggedInTemplate>



Вместо XYZ должен быть номер юзера, который я могу получить с помощью тэга
Код: html
1.
<%: Context.Session("UserID").ToString  %>



Но как мне вставить данный тэг в этот код? Чтобы в результате получить, например
Код: html
1.
<li><a runat="server" href="~/MyLists?UserID=55">Мой список</a></li>


Как ни пытался, выдает ошибку.
...
Рейтинг: 0 / 0
Динамическое создание гиперссылки в masterpage
    #39677453
Malyav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал через codebehind.

Заменил в site.master ссылку:
Код: plaintext
<a runat="server" href="~/MyLists?UserID=XYZ">Мой список</a>
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<asp:LoginView runat="server" id="LogoutPanel" ViewStateMode="Disabled">
...
    <LoggedInTemplate>
        <ul runat="server" class="nav navbar-nav navbar-right" id="LogPanel">

            <li><a runat="server" href="~/MyLists?UserID=XYZ">Мой список</a></li>

        </ul>
    </LoggedInTemplate>
</asp:LoginView>



на:
Код: plaintext
<asp:HyperLink ID="hlMyLists" runat="server">Мой список</asp:HyperLink>
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<asp:LoginView runat="server" id="LogoutPanel" ViewStateMode="Disabled">
...
    <LoggedInTemplate>
        <ul runat="server" class="nav navbar-nav navbar-right" id="LogPanel">

            <li><asp:HyperLink ID="hlMyLists" runat="server">Мой список</asp:HyperLink></li>

        </ul>
    </LoggedInTemplate>
</asp:LoginView>



а в Site.master.vb прописал

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Protected Sub Page_Load(sender As Object, e As EventArgs)
    Dim iUserID As Int16
    iUserID = Request.QueryString("UserID")
    If iUserID > 0 Then
        Dim lp As Control = FindControl("LogoutPanel")
        Dim hl1 As HyperLink = FindControlRecursive(lp, "hlMyLists")
        hl1.NavigateUrl = "~/MyLists?UserID=" & iUserID.ToString
    End If
End Sub

Private Function FindControlRecursive(ByVal rootControl As Control, ByVal controlID As String) As Control
    If rootControl.ID = controlID Then
        Return rootControl
    End If

    For Each controlToSearch As Control In rootControl.Controls
        Dim controlToReturn As Control =
            FindControlRecursive(controlToSearch, controlID)
        If controlToReturn IsNot Nothing Then
            Return controlToReturn
        End If
    Next
    Return Nothing
End Function


теперь все работает как надо.
После авторизации в выпадающем меню панели есть ссылка на страницу "Мой список" соответствующего UserID
Код: plaintext
1.
<li><a id="LogoutPanel_hlMyLists" href="MyLists?UserID=33">Список уроков</a></li>



Но, может кто-то подскажет способ проще, например с теми же <%: %> ...
...
Рейтинг: 0 / 0
Динамическое создание гиперссылки в masterpage
    #39677480
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Malyav,

Не нужно передавать ID текущего пользователя в параметрах страницы, его нужно брать из контекста текущего пользователя в HttpContext.User.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамическое создание гиперссылки в masterpage
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]