У меня есть элемент, содержащийся в пользовательском элементе управления (заголовок). Этот div включает в себя sub div внутри. Один из них включает в себя параметры пользователя. Параметры пользователя div () отображают имя пользователя вошедшего в систему пользователя и пару ссылок, связанных с уже вошедшими в систему пользователями, таких как выход из системы, настройки и т. Д. Div "user_options" абсолютно расположен внутри div "header".
Теперь, на самой странице входа в систему, я хочу скрыть этот div, поскольку пользователь попадает туда, потому что он / она не вошел в систему. В этом случае я помещаю атрибут runat = "server" в "user_options" div и я переносим событие page_load страницы .aspx, чтобы убедиться, что пользователь вошел в систему следующим образом:
if check_user_loggedin() then
user_options.attributes("style") = "display:none;"
' also tried this with user_options.visible = false and
else
user_options.attributes("style") = "display:block;"
' in this one, I even tried the whole positioning css e.g. display:block; positon:absolute; left:100px; etc...
end if
теперь с этим кодом, когда я запускаю проект, он работает нормально, где я не хочу отображать div - он успешно скрывается. Но на тех страницах, где мне нужно показать div, он все равно отображается в дальнем верхнем левом углу страницы, и событие щелчка jquery других элементов div внутри него также не работает.
Я предполагаю, что это имеет отношение к порядку выполнения или циклу событий страницы, но можете ли вы предложить какой-нибудь обходной путь для этого?
========= РЕДАКТИРОВАТЬ =========================
ЭТО CSS:
#user_options
{
position:absolute;
top:18px;
right:10px;
width:200px;
color:#ffffff;
text-align:right;
}
ЭТОТ HTML:
<div id="user_options" **runat="server"**>
<strong><a class="whiteLink" href="#"><%=MyNamespace.Users.getUsernameFromCookie%></a></strong> | <a class="whiteLink" href="usr_logout.aspx">logout</a> | <a class="whiteLink" href="#">settings</a> | <a class="whiteLink" href="#">help</a>
</div>
ЭТО КОД В КОНТРОЛЕ ПОЛЬЗОВАТЕЛЯ:
Private _displayUserOptions As Boolean
Public Property displayUserOptions() As Boolean
Get
Return _displayUserOptions
End Get
Set(ByVal value As Boolean)
_displayUserOptions = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If displayUserOptions Then
user_options.Attributes("style") = "display:none;"
Else
user_options.Attributes("style") = "display:block;"
End If
End Sub
Это то, что я вызываю на HTML-странице, чтобы отобразить пользовательский контроль
<uc1:x_layout_top ID="x_layout_top1" runat="server" displayUserOptions="false" />