使用asp.net中的site.master加载订单/脚本访问

问题描述 投票:0回答:1

这在很大程度上是关于负载排序的基本问题,但在阅读文档之后,我只想获得一些输入以进一步证实这一点。根据MSDN here,site.master load事件将在内容页面的加载事件之后触发。我正在处理的网站在site.master的标题中有一些方法可以调整内容页面上的控件。

<head id="Head1" runat="server">
...
<asp:ContentPlaceHolder ID="HeaderContent" runat="server"/>
    <script type="text/javascript">
       function resizeView() {
          //some code in here.
       }
    </script>
</head>

在aspx页面上有一个点,在页面底部分配此函数作为aspx的load事件的一部分。

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"%>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <script type="text/javascript">
          $(window).on('load', resizeView);
    </script>
</asp:Content>

因此,考虑到site.master之前的aspx发生了load事件,即使它位于site.master的头部,resizeView()方法是否会在那时未定义?

现在,当我运行网站时似乎就是这种情况。

javascript c# model-view-controller master-pages
1个回答
0
投票

母版

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MainPage.master.cs" Inherits="MainPageScript" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title></title>
    <script>
    function MasterPageFunction() {
        alert('I am at masterpage');
    }

</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>
</body>
</html>

ContentPage.cs

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

结果enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.