母版页

1》

首先新建一个Web窗体母版页。默认的名字就是Site1.Master

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApp.Site1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
        <%--其实这个ContentPlaceHolder控件就是一个占位符。用于展示子页面的内容信息--%>
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <%--公共的内容,我们可以写在母版页中--%>
            <table>
                <tr><td>编号</td><td>姓名</td><td>年龄</td></tr>

                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                    <%--其实这个ContentPlaceHolder1控件就是一个占位符。用于展示子页面的内容信息--%>
                </asp:ContentPlaceHolder>
            </table>
            <asp:TextBox ID="TextBox1" runat="server" Text="123"></asp:TextBox>
        </div>
    </form>
</body>

再新建一个包含母版页的Web窗体

<%@ Page Title="这里是子页面的Title" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm7.aspx.cs" Inherits="WebApp.WebForm7" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
     <%--在这里写子页面的head内容--%>
</asp:Content>



<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <%--在这里写子页面的内容--%>
    <tr>
        <td>            
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
             <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>           
        </td>      
    </tr>
</asp:Content>
在这个子页面中我们实现一个小功能,就是点击Button按钮,将母版页中的TextBox1控件的内容的值赋给子页面的Lable1控件

(注意:只有子页面可以获取母版页中的控件,母版页中的不可以获取子页面的控件)

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

namespace WebApp
{
    public partial class WebForm7 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //在子页面获取母版页中的控件

            //Cnotrol是所有控件的父类 (this.Master表示这个页面的母版页)
            //this.Master.FindControl("TextBox1");表示获取母版页中id为TextBox1的这个控件
            //为什么要用这种方式来获取呢?因为WebForm7这个页面继承的是Page类,而不是母版页类Site1
            Control ctl = this.Master.FindControl("TextBox1");

            if (ctl is TextBox)
            {
                TextBox tb1 = (TextBox)ctl;
                this.Label1.Text = tb1.Text;
            }
        }
    }
}


特别注意:

在母版页中放一张图片,或者指定资源路径等。要注意它是否可以在子页面中正确显示。


下面是展示在母版页怎么用客户端控件和 服务端控件来放置一张图片。

如果用手写客户端控件来放置一张图片:

<%--ResolveUrl()方法的作用是:将 URL 转换为在请求客户端可用的 URL。--%>
<img src='<%= ResolveUrl("images/123.jpg") %>' />

如果用服务端控件来展示图片  (~/ 表示网站根目录。 ~符号只能服务器控件,或者是后台代码中使用,客户Html标签不支持)

~/images/123.jpg  就表示从网站根目录下开始找,然后找到Images文件夹,然后再Images文件夹下找到123.jpg文件

<asp:Image ID="Image1"  ImageUrl="~/images/123.jpg"  runat="server" />




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值