控件的显示隐藏方法

但是得保证不跳转页面,可百度的这个效果是经过跳转的。也就是说,我得在同一个页面上做出两套效果,于是想到了利用控件的显隐来实现。经过探索,有两种解决方法:

一、使用Panel作为容器

可以使用Asp控件Panel作为容器,然后使用其他Asp控件配合实现,这个最为方便,代码如下:
    panel1:

[html] view plain copy

  1. <span style="font-size:14px;"><asp:Panel ID="Panel1" runat="server" Font-Size="Medium">
  2. <span id="sayHello">您好,<span><%=Session["UserName"] %></span></span>
  3. <asp:HyperLink ID="hlPersonalSpace" runat="server" NavigateUrl="~/NeedHelpSpace.aspx" Target="_self">个人空间</asp:HyperLink>
  4. <asp:HyperLink ID="hlInfo" runat="server">消息</asp:HyperLink>
  5. <asp:LinkButton ID="hlQuit" runat="server" OnClick="hlQuit_Click" >退出</asp:LinkButton>
  6. </asp:Panel></span>

panel2:

[html] view plain copy

  1. <span style="font-size:14px;"><asp:Panel ID="Panel2" runat="server" Font-Size="Medium">
  2. 您好,游客
  3. <a href="#" onclick="$(‘#w‘).window(‘open‘)">登陆</a>
  4. <asp:HyperLink ID="hlRegister" runat="server" NavigateUrl="~/Register.aspx" Target="_blank">注册</asp:HyperLink>
  5. <asp:HyperLink ID="hlSearch" runat="server">帮助</asp:HyperLink>
  6. </asp:Panel></span>

后台代码:

[csharp] view plain copy

  1. <span style="font-size:14px;">            if (Session["UserName"] == null)
  2. {
  3. Panel2.Visible = true;
  4. Panel1.Visible = false;
  5. }
  6. else
  7. {
  8. Panel1.Visible = true;
  9. Panel2.Visible = false;
  10. }</span>

二、使用div作为容器

但是我这里因为使用到了母版,而Asp控件必须放在服务器端form中,这个可能会跟子页引发冲突,导致一个页面具有两个服务器端form。所以,需要改成Html控件。在这里我使用的方法是将相关html控件和标签放到div中,但是div必须添加runat=“Server”,然后才能跟后台进行交互。也可以使用Js直接对div的显隐进行控制,代码如下:

div1:

[html] view plain copy

  1. <span style="font-size:14px;"><div id="loginBefore" runat ="server" style="font-size:medium">
  2. <span id="topUser" style="padding-right:25px;">你好游客
  3. <a href="javascript:void(0)" onclick="$(‘#w‘).window(‘open‘)">登录</a>
  4. <a href="Register.aspx">注册</a>
  5. <a href="#">搜索</a>
  6. </span>
  7. </div></span>

div2:

[html] view plain copy

  1. <span style="font-size:14px;"><div id="loginAfter" runat="server" style="font-size:medium" >
  2. <span id="topUser1" style="padding-right:25px;">您好,<span><%=Session["UserName"] %></span> |
  3. <a href="UserLogList.aspx?id=<%=Session["UserID"] %>" >个人空间</a> |
  4. <a href="UnreadEmail.aspx">消息</a> |
  5. <a href="#" onclick="loginQuit()">退出</a>
  6. </span>
  7. </div></span>

C#后台调用方法:

[html] view plain copy

  1. <span style="font-size:14px;">            if (Session["UserName"] == null)
  2. {
  3. loginBefore.Style["Display"] = "Block";
  4. loginAfter.Style["Display"] = "None";
  5. }
  6. else
  7. {
  8. loginBefore.Style["Display"] = "None";
  9. loginAfter.Style["Display"] = "Block";
  10. }
  11. </span>

如果使用Js直接调用的话,可以操控div显隐的方法如下:

[html] view plain copy

  1. <span style="font-size:14px;">         document.getElementById("loginAfter").style.display = "none";//隐藏
  2. document.getElementById("loginBefore").style.display = "block";//显示</span>

最终实现的效果如下:

图3:登陆前

图4:登陆后

时间: 2024-11-07 23:26:59

控件的显示隐藏方法的相关文章

winfrom 控件的显示隐藏方法

使用Panel作为容器 Panel2.Visible = true; //显示 Panel1.Visible = false; //隐藏 原文地址:https://www.cnblogs.com/wrld/p/10159918.html

Android 控件的显示隐藏上下左右移动动画

一.利用Android提供的左右移动工具类:AnimationUtils LinearLayout ll_first = (LinearLayout) findViewById(R.id.ll_first); LinearLayout ll_second = (LinearLayout) findViewById(R.id.ll_second); ll_first.setVisibility(View.GONE); ll_second.setVisibility(View.VISIBLE); /

QTP录制后弹出框一个或多个ActiveX控件无法显示的解决方法

制一段脚本代码,在专家视图窗口中编辑录制的脚本代码时,会碰到弹出一个对话窗口,提示为"当前安全设置禁止运行该页中的ActiveX 控件,因此,该页可能无法正常显示"类似的东西,而在人工操作时却没有这样的现象.(如图) 问题主要出在于QTP设置本身,之所以在编辑录制好的脚本时,QTP出现关于Active的对话提示窗口,问题在于QTP的设置,要消除该提示窗口.应对QTP作如下设置:toos–options–Active Screen–Advanced–点选Load ActiveX cont

C#基础视频教程3.1 常见控件类型和使用方法

可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上) ? 为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了 ? 对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否启用(我们输入按钮名称+点就可以访问这个控件的所有属性,事件和方法,注意属性是一把扳手的标识,事件是一个闪电,方法是一个小方块) ? 详细解释一下属性:我们先判断这个按钮是否已经Enabled(这里判断的就是按钮2的属性,属性就好比一个人有他的属性,身高,年龄,体重,姓名,性别,有一些属性是只读的,

解决TalbleView头部或底部子控件不显示问题

在自定义cell头部控件UITableViewHeaderFooterView(和自定义cell的方法几乎一样)时,出现了头部控件子控件不显示的问题. 注意和自定义cell的区别. .h文件 1 #import <UIKit/UIKit.h> 2 #import "CHModleGroup.h" 3 @interface HeaderView : UITableViewHeaderFooterView 4 @property (nonatomic, weak) UILabe

iOS UI控件没有显示时的调试技巧

1.遇到UI控件没有显示的问题,可以给这个控件设置背景色 假设这个控件是UIBUtton 如果背景色能显示,那问题就出在image和title值为空 如果背景色不能显示,重写控件的description方法,把控件的frame打印出来分析 2.以下是打印UIView的frame的分类 #import <UIKit/UIKit.h> @interface UIView (Log) @end 1 #import "UIView+Log.h" 2 3 @implementatio

【ANDROID 初学】控件--IMAGEVIEW的使用方法

Start Android 1.图片视图(ImageView)的基本概念 2.<InameView/>与ImageView 3.神奇的ScaleType属性 当图片大小与ImageView大小不匹配的时候,可以通过该属性来调整图片与ImageView控件的位置关系. android:scaleType:  android:scaleType是控制图片如何resized/moved来匹对ImageView的size. ImageView.ScaleType / android:scaleType

解决虚拟桌面IE受信任站点与active控件下载提示的方法

Pool池桌面(随机)安装完成以后,通过IE打开办公平台出现office控件问题: 1.  同一台虚拟桌面,同一个用户帐号,注册安装一次控件就行了. 2.  同一台虚拟桌面,不同的用户帐号,必须重新安装注册控件才行. 对于随机虚拟桌面来说,用户每次登录的可能都是不同的虚拟桌面,那么就会出现每次都要安装注册控件,这要如何来解决? 对于IE中的Active控件,如果要实现不会弹出提示,自动安装,是如何设置的? (1)加入可信站点: (2)设置可信站点的"自定义级别",其中相关Active控

OpenCV获取摄像头视频并在MFC的Picture控件上显示

分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in