【问题标题】:Nested Master Pages in ASP.NET results in missing controls!ASP.NET 中的嵌套母版页导致缺少控件!
【发布时间】:2011-04-17 05:51:43
【问题描述】:

我有以下层次结构:

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>

模板主页面:

<%@ 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
    }

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

【问题讨论】:

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


【解决方案1】:

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

关于它的一些想法:

  • 你的类在后面的代码中被命名为TemplatePage,但被称为TemplateMasterPage
  • 无法控制AnotherBtn。只有Submit_Btn
  • 无法控制Btn。只有Submit_Btn
  • 我在InputControls_DivAfterSubmission_Div 上收到no 错误。

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

【讨论】:

  • 首先感谢您的努力..其次,对于您列表中的第一个错误,我很抱歉,我试图简化我的页面并提供更有意义的名称以供您理解,但我错过了其中一些,但我现在改变了它们.. 最后一件事为什么 Divs 上没有错误? .. 您是否将 TemplateMasterPage 的所有标记都放在 Content 控件 (ContentArea) 中?
  • 你说的 90% 是对的 .. 其余的错误都通过重建页面解决了 .. 我的编译器一定有错误之类的! .. 感谢您的帮助,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2017-08-02
相关资源
最近更新 更多