我有一个元素包含在用户控件(标题)中.这个div包含里面的子div.其中一个包括用户选项.用户选项div()显示登录用户的用户名,以及与已登录用户相关的一些链接,例如注销,设置等."user_options"div绝对位于"header"div中.
现在,在登录页面本身,我想隐藏这个div,因为用户被带到那里因为他/他没有登录.在这种情况下,我把一个runat ="server"属性放到"user_options"div和我进行.aspx页面的page_load事件检查以查看用户是否登录如下;
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
Run Code Online (Sandbox Code Playgroud)
现在使用此代码,当我运行项目时,它可以正常工作,我不想显示div - 它成功隐藏.但是在那些我需要显示div的页面中,它仍会显示在页面的最左上方,而其中的其他"div"元素的jquery click事件也不起作用.
我认为它与执行顺序或页面事件周期有关,但是你可以为此建议任何解决方法吗?
=========编辑=========================
这是CSS:
#user_options
{
position:absolute;
top:18px;
right:10px;
width:200px;
color:#ffffff;
text-align:right;
}
Run Code Online (Sandbox Code Playgroud)
这是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>
Run Code Online (Sandbox Code Playgroud)
这是用户控制中的代码:
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
Run Code Online (Sandbox Code Playgroud)
这就是我在HTML页面中调用以显示用户控件的内容
<uc1:x_layout_top ID="x_layout_top1" runat="server" displayUserOptions="false" />
Run Code Online (Sandbox Code Playgroud)
在我们进入ASP.NET 4.0和ClientIdMode ="Static"之前,我建议使用唯一的类名来解决此问题.
<div id="user_options" runat="server" class="user_options">....
Run Code Online (Sandbox Code Playgroud)
因为那时你可以a)使用后面的代码来访问user_options,然后使用jQuery和CSS来访问.user_options而不是#user_options
| 归档时间: |
|
| 查看次数: |
3608 次 |
| 最近记录: |