ASP.NET中的嵌套母版页导致缺少控件!

时间:2011-04-17 05:51:43

标签: c# asp.net webforms master-pages

我有以下层次结构:

MainMasterPage:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MainAdmin.master.cs" Inherits="MyWebsite.Admin.MainAdmin" %>

<form id="form1" runat="server">
<div id="MainMenu_Div" runat="server">
    <asp:ContentPlaceHolder ID="MainMenu" runat="server"/>
</div>

<div id="ContentArea_Div" runat="server">
    <asp:ContentPlaceHolder ID="ContentArea" runat="server"/>
</div>
</form>

TemplateMasterPage:

<%@ Master Language="C#" MasterPageFile="~/Admin/MasterPages/MainAdmin.Master" AutoEventWireup="true" CodeBehind="TemplateMasterPage.master.cs" Inherits="MyWebsite.Admin.TemplateMasterPage" %>

<asp:Content ID="ContentArea" ContentPlaceHolderID="ContentArea" runat="server">
    <div id="InputControls_Div" runat="server">
        <asp:ContentPlaceHolder ID="InputControls" runat="server" />
        <br />
        <asp:Button ID="Submit_Btn" runat="server" Text="Submit" 
            onclick="Submit_Btn_Click" />
    </div>


    <div id="AfterSubmission_Div" runat="server" visible="False">
    <asp:Button ID="AnotherBtn" runat="server" CssClass="linkLookingButton" 
        onclick="AnotherBtn_Click" />
    </div>
</asp:Content>

TemplateMasterPage(代码隐藏)

public partial class TemplateMasterPage : System.Web.UI.MasterPage
{
    public string BtnText
    {
        get { return AnotherBtn.Text; } //AnotherBtndoesn't exist in the current context
        set { AnotherBtn.Text = value; } //AnotherBtndoesn't exist in the current context
    }


    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Submit_Btn_Click(object sender, EventArgs e)
    {
        Submit_Btn.Enabled = false; //Submit_Btn doesn't exist in the current context

        InputControls_Div.Visible = false; //InputControls_Div doesn't exist in the current context
        AfterSubmission_Div.Visible = true; //AfterSubmission_Div doesn't exist in the current context
    }

我评论了我的Code Behind示例中的错误..这用于在使用嵌套母版页之前工作!

1 个答案:

答案 0 :(得分:1)

刚刚根据您的代码片段构建了一个网站。

对此的一些想法:

  • 您的课程在背后的代码中被命名为TemplatePage,但称为TemplateMasterPage
  • 无控件AnotherBtn。只有Submit_Btn
  • 无控件Btn。只有Submit_Btn
  • 我在InputControls_DivAfterSubmission_Div上收到错误。

所以我可以说,你的编译器是正确的,你必须添加缺少的按钮或重命名代码,使其成功编译。