javascript - 从 contentpage 在 asp.net 中调用 masterpage 功能?

标签 javascript asp.net master-pages

我在母版页上有一个函数,我想从代码隐藏的内容页调用它。

这是我的尝试:

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

"setStatusBarMessage"函数是在 masterpage 中声明的,所以这段代码不起作用。

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>

内容页:

<%@ 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 对象下。

最佳答案

确定试试下面的代码

我在母版页中有一个功能是

<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);
}

关于javascript - 从 contentpage 在 asp.net 中调用 masterpage 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782928/

相关文章:

javascript - 如何将了解更多链接直接指向选项卡?

php - 如何在滚动页面时将值加载到页面

css - 将 PSD 中的 UI 模型转换为 ASP.NET MVC 站点的母版页和 CSS 的最佳做法是什么?

asp.net-mvc - 未安装 mvc 4 的 Web 服务器上的 mvc 4 应用程序

Javascript pageLoad 未在母版页中执行

javascript - jQuery ajax 请求仅在第二次调用时返回值

javascript - jquery-ui 工具提示功能中的选项对工具提示没有任何影响

javascript - 如何更新子组件的状态以独立拖动它们

c# - Web Api 不会使用 jQuery Ajax 和 Basic Auth 下载文件

asp.net - 没有配置身份验证处理程序来处理方案 : Automatic