Javascript 如何在asp.net中的仪表板页面加载上隐藏母版页中存在的div?

Javascript 如何在asp.net中的仪表板页面加载上隐藏母版页中存在的div?,javascript,jquery,html,asp.net,css,Javascript,Jquery,Html,Asp.net,Css,我有一个母版页,其中有一个div <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="NGO_MS.SiteMaster" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <

我有一个母版页,其中有一个div

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="NGO_MS.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head id="Head1" runat="server">
    <title></title>
    <script type="text/javascript" 
   src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
   <div class="container">
      <div>
        <div class="navbar navbar-default" role="navigation">
        <div class="navbar-collapse collapse " id="menu">
          <ul class="nav navbar-nav navbar-right alert-success">
            <li class="active"><a href="Default.aspx">Home</a></li>
          </ul>
        </div>
      </div>
      </div>
      <asp:ContentPlaceHolder ID="MainContent" runat="server"/> 
    </div>
    <div class="container" style="background-color: white">
         <div>
        <div style="float: left; color: green"> 
        </div>
        <div style="float: right; color: green">
        </div>
     </div> 
    </div>
</body>
</html>



在dashboard.aspx中,我想用母版页中的id菜单隐藏div。。像这样的东西

        <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dashboard.aspx.cs" MasterPageFile="~/Site.master" Inherits="NGO_MS.dashboard" %>
<%@ Register TagPrefix="UC_LeftMenu" TagName="LeftMenu" Src="UserControls/UC_LeftMenu.ascx" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
   <script type="text/javascript">
       $(document).ready(function () {
           $('#menu').hide();
       });
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<form runat="server" ID="Form1">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
       <div class="col-md-10">
           <UC_LeftMenu:LeftMenu ID="LeftMenu" runat="server" />
            <div class="col-md-9">
               <%--dashboard content will go here --%>
            </div>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>
</form>   
</asp:Content>

$(文档).ready(函数(){
$(“#菜单”).hide();
});
我怎样才能解决这个问题?它不起作用。谢谢:)
我正在仪表板中使用更新面板,但此更新面板未使用id菜单包装div。如何解决此问题。

检查您的HTML。如果我没有弄错,ID将不会生成为HTML1:1

目前你的JS也不会被执行。。。另一方面,您也可以定义服务器端代码:

<script language="C#" runat="server" type="text/c#">
     public void Page_Load(object sender, EventArgs e){
         //hide the menu here
     }
</script>

公共无效页面加载(对象发送方,事件参数e){
//在这里隐藏菜单
}
或者,您甚至可以执行以下操作:


您需要将pageLoad功能放在jQuery document ready处理程序中,以便它在加载DOM后执行

它应该是这样的:

<script type="text/javascript">
    $(document).ready(function() {
        $('#menu').hide();
    });
</script>

$(文档).ready(函数(){
$(“#菜单”).hide();
});

如果要调用页面加载,则需要脚本管理器

<asp:ScriptManager runat="server" ID="ScriptManager1" />
<script type="text/javascript" 
    src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
    function pageLoad() {
        $('#menu').hide();
    }
</script>
dashboard.aspx.cs
您是否真的在页面的某个地方调用了
pageLoad()
?定义函数不会执行其中的代码。我实际上不知道如何完成它,我只是尝试了pageLoad()。你能给我提点别的建议吗?我怎样才能得到解决方案@Brian Driscoll尝试了此操作,但不起作用我在仪表板页面中有更新面板。这是造成问题的原因吗@Becuzzt这是jQuery代码。。。您需要包括jQuery库,以便work@AfnanAhmad也许,这取决于UpdatePanel在哪里,以及它是否正在包装菜单div。@Vogel612没有像我提到的那样工作,我正在使用更新面板。。库已包含..更新面板位于仪表板中,它没有使用id菜单@Becuzzi am using update panel包装div,并且您的建议不起作用。我正在使用仪表板pae中的更新面板,这是导致问题的原因吗?我已经尝试了这些选项我正在使用仪表板中的更新面板,并且更新面板没有使用id菜单包装div@Win我如何解决这个问题而不查看代码的其余部分,很难说是哪个部分导致了问题。请上传代码(尽可能小),以便我们可以复制该问题。我在使用更新面板的地方编辑了仪表板零件代码。我添加了几乎完整的零件。。请告诉我:)正在生成id。我正在使用仪表板中的更新面板,但它没有使用id菜单包装div。我如何解决这个问题?@Afnan你说带id菜单的div没有包装是什么意思??
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<script type="text/javascript" 
    src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
    function pageLoad() {
        $('#menu').hide();
    }
</script>
<script type="text/javascript" 
   src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {
        $('#menu').hide();
    });
</script>
<div class="container">
    <div>
        <div class="navbar navbar-default" role="navigation">
            <asp:Panel runat="server" ID="MenuPanel" 
                CssClass="navbar-collapse collapse">
                <ul class="nav navbar-nav navbar-right alert-success">
                    <li class="active"><a href="Default.aspx">Home</a></li>
                </ul>
            </asp:Panel>
        </div>
    </div>
    <asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
public partial class Site : System.Web.UI.MasterPage
{
    public bool MenuPanelVisible
    {
        set { MenuPanel.Visible = value; }
    }
}
public partial class dashboard : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var master = Master as Site;
        if (master != null)
        {
            master.MenuPanelVisible = false;
        }
    }
}