这是我的母版页的代码如何在母版页中使用JavaScript在我的子页面中引用PlaceHolder?
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteMaster.master.cs"
Inherits="ChildPage_Call_Js_in_MasterPage.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="phMenu" runat="server"></asp:PlaceHolder>
<asp:ContentPlaceHolder ID="ContentPlaceHolderBody" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
<script type="text/javascript" language="javascript">
function showHideMasterPageContent() {
debugger;
var phMenu = document.getElementById("<%=phMenu.ClientID%>");
// phMenu.style.display = 'none';
}
</script>
</body>
</html>
这是我Childpage代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.master" AutoEventWireup="true"
CodeBehind="ChildPage1.aspx.cs" Inherits="ChildPage_Call_Js_in_MasterPage.ChildPage1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderBody" runat="server">
<script type="text/javascript" language="javascript">
$(document).ready(function() {
debugger;
showHideMasterPageContent();
});
</script>
</asp:Content>
现在我想做的是,使用JavaScript,隐藏在childpage了“phMenu”的内容。 为此,我在母版页中写了一个名为“showHideMasterPageContent”的函数,我在子页面中调用该函数。
我的问题是,我得到一个空引用,因为显然,当我看到源代码时,我看到只显示了phMenu的内容,而不是phMenu控件本身。现在如何在JS中引用phMenu?
嘿家伙感谢您的答案。我忘了补充一点,这个主页是我的团队在4个月前开发的,他们在继承这个主页的其他页面上的许多地方使用“document.getElementById(”....“)”来引用这个phMenu的内容。 除此之外,我们还在这些子页面上使用Telerik RadControls,这些子页面也使用了一些指向phMenu内控件的javascript。 – Sandeep 2010-10-18 17:43:32
该框架是3.5SP1,所以没有ClientID模式attirbute :(现在,如果我围绕占位符添加div或另一个面板,很可能ASP.NET命名层次结构将踢入并更改所有内容的客户端ID。 。然后可以打破在过去几个月中添加了很多JS代码..是否有任何安全的方式来做到这一点,而不会造成回归问题? – Sandeep 2010-10-18 17:43:54
如果您在广告中有一个ID为DIV的DIV应该除非您将runat =“server”添加到ID,否则不要更改ID。 – nopuck4you 2010-10-18 18:02:08