控件的顯示隱藏方法


    但是得保證不跳轉頁面,可百度的這個效果是經過跳轉的。也就是說,我得在同一個頁面上做出兩套效果,於是想到了利用控件的顯隱來實現。經過探索,有兩種解決方法:

    一、使用Panel作為容器

    可以使用Asp控件Panel作為容器,然后使用其他Asp控件配合實現,這個最為方便,代碼如下:
    panel1:
[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  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
 
 在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-size:14px;"><asp:Panel ID="Panel2" runat="server" Font-Size="Medium">  
  2.             您好,游客  
  3.        <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
 
 在CODE上查看代碼片派生到我的代碼片
  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.                 <href="javascript:void(0)" onclick="$('#w').window('open')">登錄</a>  
  4.                 <href="Register.aspx">注冊</a>  
  5.                 <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.                <href="UserLogList.aspx?id=<%=Session["UserID"] %>" >個人空間</a> |   
  4.                <href="UnreadEmail.aspx">消息</a> |   
  5.                <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.   
  4.                 loginBefore.Style["Display"] = "Block";  
  5.                 loginAfter.Style["Display"] = "None";  
  6.             }  
  7.             else  
  8.             {  
  9.                 loginBefore.Style["Display"] = "None";  
  10.                 loginAfter.Style["Display"] = "Block";  
  11.             }  
  12. </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:登陸后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM