不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
内容页面访问母版页控件的两种方法
编辑:dnawo 日期:2008-06-27
母版页是ASP.NET2.0新增的一个功能,使用它可以更方便、更快速的创建风格一致的应用程序。.NET的母版页和Dreamweaver的模板非常的相似,但.NET的母版页更加强大,它除了能够实现创建风格一致的应用程序这一基本功能外,还允许内容页和母版页进行"通信",下边我们就来看看如何在内容页中访问母版页的控件。
我们先来创建一个母版页MasterPage.master:
MasterPage.master.cs:
1.使用FindControl访问母版页中的控件
Default.aspx:
Default.aspx.cs:
2.使用MasterType指令访问母版页中的控件
Default.aspx:
Default.aspx.cs:
说明:在内容页中使用MasterType指令后,将使得内容页中的Master属性被强类型化,也就是说,通过MasterType指令,可以创建与内容页相关的母版页的强类型引用。由此,可以在内容页中,使用Master对象访问母版页的公共方法、属性和控件等成员。
上边只是母版页的一点应用,有兴趣的朋友还可试试母版页的嵌套、动态加载母版页、以及实现自动针对不同的客户端使用不同的母版页。
我们先来创建一个母版页MasterPage.master:
复制内容到剪贴板
程序代码

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>内容页面访问母版页控件-Mzwu.Com</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="100%">
<tr>
<td colspan="2" style="height: 51px; text-align: center;">
Top</td>
</tr>
<tr>
<td style="height: 459px">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</td>
<td style="height: 459px">
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
<tr>
<td colspan="2" style="height: 44px; text-align: center;">
Bottom<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>内容页面访问母版页控件-Mzwu.Com</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="100%">
<tr>
<td colspan="2" style="height: 51px; text-align: center;">
Top</td>
</tr>
<tr>
<td style="height: 459px">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</td>
<td style="height: 459px">
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
<tr>
<td colspan="2" style="height: 44px; text-align: center;">
Bottom<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
MasterPage.master.cs:
复制内容到剪贴板
程序代码

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
//可读写Label1的Text属性
public string LabelText
{
get { return Label1.Text; }
set { Label1.Text = value; }
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
//可读写Label1的Text属性
public string LabelText
{
get { return Label1.Text; }
set { Label1.Text = value; }
}
}
1.使用FindControl访问母版页中的控件
Default.aspx:
复制内容到剪贴板
程序代码

<%@ Page Language="C#" MasterPageFile="~/Templates/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Left"></asp:Label>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<asp:Label ID="Label2" runat="server" Text="Right"></asp:Label>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Left"></asp:Label>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<asp:Label ID="Label2" runat="server" Text="Right"></asp:Label>
</asp:Content>
Default.aspx.cs:
复制内容到剪贴板
程序代码

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
/// <summary>
/// 不能在Page_Load中访问母版页的控件,因为内容页比母版页先加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_LoadComplete(object sender, EventArgs e)
{
Label1.Text = ((Label)Master.FindControl("label1")).Text;
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
/// <summary>
/// 不能在Page_Load中访问母版页的控件,因为内容页比母版页先加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_LoadComplete(object sender, EventArgs e)
{
Label1.Text = ((Label)Master.FindControl("label1")).Text;
}
}
2.使用MasterType指令访问母版页中的控件
Default.aspx:
复制内容到剪贴板
程序代码

<%@ Page Language="C#" MasterPageFile="~/Templates/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/Templates/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Left"></asp:Label>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<asp:Label ID="Label2" runat="server" Text="Right"></asp:Label>
</asp:Content>
<%@ MasterType VirtualPath="~/Templates/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Left"></asp:Label>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<asp:Label ID="Label2" runat="server" Text="Right"></asp:Label>
</asp:Content>
Default.aspx.cs:
复制内容到剪贴板
程序代码

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
/// <summary>
/// 不能在Page_Load中访问母版页的控件,因为内容页比母版页先加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_LoadComplete(object sender, EventArgs e)
{
Label2.Text = Master.LabelText;
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
/// <summary>
/// 不能在Page_Load中访问母版页的控件,因为内容页比母版页先加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_LoadComplete(object sender, EventArgs e)
{
Label2.Text = Master.LabelText;
}
}
说明:在内容页中使用MasterType指令后,将使得内容页中的Master属性被强类型化,也就是说,通过MasterType指令,可以创建与内容页相关的母版页的强类型引用。由此,可以在内容页中,使用Master对象访问母版页的公共方法、属性和控件等成员。
上边只是母版页的一点应用,有兴趣的朋友还可试试母版页的嵌套、动态加载母版页、以及实现自动针对不同的客户端使用不同的母版页。
评论: 0 | 引用: 0 | 查看次数: 4855
发表评论
请登录后再发表评论!