C# 如何从母版页调用内容页函数

C# 如何从母版页调用内容页函数,c#,master-pages,C#,Master Pages,有必要从母版页调用内容页函数。 如果需要更多数据,请告诉我 MasterPage.master.cs看起来像 protected void Required_Function(object sender, EventArgs e) { // call Update_Content_Page() from content page } <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" A

有必要从母版页调用内容页函数。 如果需要更多数据,请告诉我

MasterPage.master.cs看起来像

 protected void Required_Function(object sender, EventArgs e)
 {
    // call Update_Content_Page() from content page 
 }
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="contentPlaceHolder" Runat="Server">

<asp:Label ID="Label1" runat="server" Text="Label">Hello people!</asp:Label>

</asp:Content>
Default.aspx看起来像

 protected void Required_Function(object sender, EventArgs e)
 {
    // call Update_Content_Page() from content page 
 }
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="contentPlaceHolder" Runat="Server">

<asp:Label ID="Label1" runat="server" Text="Label">Hello people!</asp:Label>

</asp:Content>

你可以这样试试。。不完全是,但会帮助你

您可以从基类继承页面。然后,您可以在基类中创建一个虚拟方法,该方法将在页面中被重写。然后可以像这样从母版页调用该虚拟方法-

(cphPage.Page as PageBase).YourMethod();

这里,
cphPage
是母版页中
内容占位符的ID
PageBase
是包含
YourMethod
方法的基类。

我通常发现,当母版页需要调用ContentPage中的函数时,页面的设计存在缺陷。母版页不需要知道任何有关内容页的信息。但是,如果您觉得这是正确的方法,那么这里有一个来自代码项目

我个人使用jquery做了一个技巧:当我单击主按钮时,它实际上单击了名为“saveButton”的内容页按钮并使用了它的功能:

HTML:

.主jquery代码:

function tester() {
        console.log("Testing");
        $("[id$='SaveButton']").click();
    }

我使用id$='SaveButton'是因为您现在可能知道,ASP.NET在主控、中继器、网格视图和其他包含控件的控件中时会重命名这些控件$id='stuff'验证控件id是否以'stuff'结尾

部分同意你的观点。在90%的情况下,它会像你说的那样非常有效。但不存在“一刀切”的情况。请参阅下面的一个答案中提供的示例:是的,您是对的:)有时您需要稍微更改规则以获得所需的结果。但知道什么时候这样做以及为什么这样做很重要:)这可能会奏效,但这种方法太复杂了。下次我会试试的。也许:)不过还是非常感谢你。你能详细说明我不明白吗??检查这个-这里有一个关于你的要求的教程:我不在这里粘贴精确的代码,因为解决方案相当复杂。可能的副本不是。我问的是如何从母版页调用内容页函数,而不是相反。我可以理解为什么你没有在这里放任何代码。解决方案很复杂,但代码行很少。我稍微调整了一下我的代码,它成功了。但是,哦,孩子,这一点都不简单。我接受它作为答案,因为您链接上的信息帮助我解决了我的问题。@PavelNefyodov请发布您成功使用的代码。我也有同样的问题。。