繁体   English   中英

从 UserControl 到父母版页

[英]From UserControl to parent master page

我有一个奇怪的场景,但这就是它在我之前的设计方式。 基本上我有userControl,还有一个child.masterpage

在 ascx 文件的 userControl 中,它包含以下内容

<div><%=_template%></div>

child.masterpage 继承自 parent.masterpage,在 child.masterpage 中有对 userControl 的调用

<asp:Content><ucc:UserControl></ucc>

parent.masterpage 中有其他字段,它有一个带有 c# function 的.cs文件

public void passVal(string s)

现在我要做的是将用户控件中的值直接传递给 parent.masterpage function 以便我可以将它放在我创建的 parent.masterpage 文字中。

我怎样才能实现这一点(同样,这是现有的设计,我无法扭转局面)我只是在添加一个功能。

<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="../common/main.master" %>
<%@ Register Src="UserControl.ascx" TagName="Ord" TagPrefix="uc" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<div class="in"><uc:OrderReceipt ID="myord" runat="server" Visible="true"/>
 <div style="margin-bottom:30px;">
<a href="~/" id="HomeLink" runat="server" class="BackLink">Back to Home Page</a>
</div>
</asp:Content>

您可以使用Page.Master属性来获取母版页实例。

protected someEvent(object sender, EventArgs e)
{
   (Page.Master as ChildMaster).passVal("some string");
}

更多答案:

我只是在查看您的 OP 并意识到一些事情。 一直困扰我的代码是用户控件。

在 ascx 文件的 userControl 中,它包含以下内容

<div><%=_template%></div>

我还没有看到后面的代码,但我的猜测是用户控件只是用于 output 动态 HTML。 我敢打赌,如果您查看用户控件背后的代码(.cs 文件),您会发现一个名为_template的变量。 它是在运行时使用 html 抽取的字符串变量。

现在,这并不能回答你的问题,但是,如果你还不知道......很高兴知道 =P

现在,下一个谜团是关于您丢失的子母版页文件隐藏代码的谜团。

我的理论是,无论是谁做了它,都会出现一些错误,导致它不会自动生成隐藏文件的代码。 或者,他们从头开始制作,只是简单地将其添加到项目中,但也忽略了后面的代码。

我制作了一个母版页,然后制作了另一个名为 child 的母版页。 我可以对它进行子类化,这就是背后的标记和代码的样子。

<%@ Master Language="C#" MasterPageFile="~/Master.master" AutoEventWireup="true"   CodeFile="Child.master.cs" Inherits="Child" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
</asp:Content>

public partial class Child : Master
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

在将标记与您的标记进行比较时,这里的主要区别在于我明确提到了CodeFile属性。

创建一个新的 cs 文件并遵循命名约定。 然后将CodeFileInherits属性添加到您的子母版页。 这应该正确连接所有内容,并允许您开始向子母版页添加方法等。

让我知道你在哪里,我们会从那里拿走它。 总帐

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM