在子页面的回发中更新母版页中的控件

时间:2014-08-22 22:12:51

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

页面右上角的小型图片是母版页(asp:Image)的一部分,将在Page_load事件中显示。

enter image description here

在用于更新个人资料图片的内容页面中,点击保存按钮点击事件后,如何更新母版页面上的图片,此时只更新了内容的大图片(因为我把代码放了在Save_button点击事件结束时更新它。这里的想法是什么,我应该遵循哪些步骤?

enter image description here

2 个答案:

答案 0 :(得分:2)

首先在子页面中使用MasterType属性(MasterPage是类名):

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" 
    AutoEventWireup="true" CodeFile="Child1.aspx.cs" 
    Inherits="Child1" Title="Untitled Page" %>

<%@ MasterType TypeName="MasterPage" %>

然后,在MasterPage中,公开您希望子页面可以访问的任何属性或字段。

属性/字段应显示在子页面的intellisense中。

以下是MasterPage的完整代码以及如何公开元素:

MasterPage.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>

<body>
    <form id="form1" runat="server">
        <asp:image id="_MyImage" runat="server"></asp:image>
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

MasterPage.Master.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class MasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public Image MyImage
    {
        get { return _MyImage; }   
    }
}

答案 1 :(得分:0)

尝试从用户控件中引发事件并让母版页处理事件。

以下是一个例子:

http://snippets.surfthru.com/post/ASPNET-Raise-Event-on-Parent-Page-from-User-Control