2012-10-08 60 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

相关问题