這是我的母版頁的代碼如何在母版頁中使用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