2012-10-08 94 views
3

我有一個主頁上的功能,我想從代碼隱藏的內容頁面調用它。從asp.net中的contentpage調用masterpage函數?

這是我嘗試:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert__", string.Format("setStatusBarMessage('{0}',{1});", barMessage, type, ""), true); 

「setStatusBarMessage」 功能在母版聲明,所以這段代碼犯規工作。

setStatusBarMessage是一個客戶端功能。

母版:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Content.master.cs" 

Inherits="F8.CRM.Pages.Content" %> 

<!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"> 
    <asp:ScriptManager runat="server" /> 
    <div> 
     <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
     </asp:ContentPlaceHolder> 
    </div> 
    </form> 
</body> 
</html> 
<script type="text/javascript"> 


    function hello() { 
     alert('hi mennan'); 
    } 

</script> 

ContentPage:

<%@ Page Title="" Language="C#" MasterPageFile="~/Pages/Content.Master" AutoEventWireup="true" 
    CodeBehind="Departman.aspx.cs" Inherits="F8.CRM.Departman" %> 

<%@ Register Src="~/Controls/Objects/StudioSideBox/StudioSideBox.ascx" TagName="StudioSideBox" 
    TagPrefix="uc1" %> 
<%@ Register Src="~/Controls/Objects/Baslik/Baslik.ascx" TagName="Baslik" TagPrefix="uc2" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    my html... 

    <script type="text/javascript"> 

     my script codes... 


    </script> 

</asp:Content> 

該母版和內容頁是一個iframe對象下。

+0

它是客戶端功能還是? – levi

+0

我認爲如果他們在客戶端沒有必要明確包含這些功能,他們應該已經在內容頁面上。 –

+0

編輯,其客戶端功能 – Mennan

回答

5

OK試試下面的代碼

我有一個在主頁上的功能是

<script> 
    function hello() { 
     alert('hi'); 
    } 

</script> 

現在內容頁面」的頁面加載

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(this, this.GetType(), "ntmtch", "hello();", true); 
} 

它的工作。我沒有添加任何內容頁面。

更新

母版頁的代碼

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> 
<!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> 
<script> 
    function hello() { 
     alert('hi'); 
    } 

</script> 
<asp:ContentPlaceHolder id="head" runat="server"> 

</asp:ContentPlaceHolder> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 

    </asp:ContentPlaceHolder> 
</div> 
</form> 

第一個內容頁面的代碼

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> 
<iframe src="Default2.aspx"></iframe> 
</asp:Content> 

落後第一內容頁代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(this, this.GetType(), "ntmtch", "hello();", true); 
} 
+0

我創建一個新的解決方案,它的主頁和內容頁的作品。但它沒有在我的工作項目中工作。我在內容頁面中使用iframe,這有什麼問題嗎? – Mennan

+0

嗯,你可以粘貼你的主頁面和內容頁面的代碼,這樣我們就可以理解這個問題了。 –

2

試試這個調用母版頁服務器端功能

MasterPagename ms = Master as MasterPagename ; 
    ms.FuctionOnMasterPage(); 

如果烏拉圭回合試圖調用母版頁上的客戶端功能,我想ü可以直接調用它,因爲烏爾母版頁和內容頁功能將得到呈現在同一個html頁面上。

+0

我嘗試從內容頁名稱調用,但我得到錯誤沒有找到像這個函數名 – Mennan

0

通常我願意這樣做:在標記:

<asp:Literal ID="ScriptLit" runat="server" /> 


在後面的代碼:

ScriptLit.Text = "<script>functionName();</script>" 
+0

@Mnannan看到它的編輯 – levi

0

這裏我們可以讓法師頁面類的一個對象,然後就可以調用母版功能

MasterPageClassName MyMasterPage = (MasterPageClassName)Page.Master; 

MyMasterPage.Functionname(); 

它一定會幫助你。試試看

-2

Label lbl =(Label)this.Master.FindControl(「lblBalance」); lbl.Text =「Hi」;

+0

這個代碼應該放在哪裏?它在做什麼?它背後的基本原理是什麼? – rayryeng

+0

是的,請解釋您回答的任何代碼。只有代碼答案很少有幫助。 – indivisible

相關問題