必须从母版页调用内容页面功能。 如果需要更多数据,请告诉我。
MasterPage.master.cs看起来像
protected void Required_Function(object sender, EventArgs e)
{
// call Update_Content_Page() from content page
}
Default.aspx看起来像
<%@ 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.cs看起来像
using…
public partial class _Default : System.Web.UI.Page
{
protected void Update_Content_Page()
{
Label1.Text=”Hello world”;
}
}
答案 0 :(得分:6)
你可以尝试这样..不完全但会帮助你.....
您可以从基类继承您的页面。然后,您可以在基类中创建一个虚拟方法,该方法将在您的页面中被覆盖。然后,您可以从主页面调用该虚拟方法,如下所示 -
(cphPage.Page as PageBase).YourMethod();
此处, cphPage
是您母版页中 ContentPlaceHolder
的ID。 PageBase
是包含 YourMethod
方法的基类。
答案 1 :(得分:1)
我经常发现当MasterPage需要在ContentPage中调用函数时,您的页面设计存在缺陷。 MasterPage不需要知道有关ContentPages的任何信息。但如果您认为这是正确的方法,请参阅CodeProject的guide
答案 2 :(得分:1)
我个人使用jquery做了一个技巧:当我点击主按钮时,它实际上点击了名为&#39; saveButton&#39;的内容页面按钮。并使用了它的功能:
HTML:
enter code here
.master jquery code:
function tester() {
console.log("Testing");
$("[id$='SaveButton']").click();
}
我用id $ =&#39; SaveButton&#39;正如您现在可能知道的那样,ASP.NET在主控,转发器,网格视图和其他包含控件内部时重命名控件。 $ ID =&#39;东西&#39;验证控件ID以&#39; stuff&#39;结尾。