ASP.NET母版页和内容页之间如何互相传值

       我们在asp.net中创建一个完整的母版页之后,接下来必然要创建内容页。从用户访问的角度来讲,内容页与最终结果页的访问路径相同,这好像表明二者是同一文件,实际不然。结果页是一个虚拟的页面,没有实际代码,其代码内容是在运行时状态下母版页和内容页合并的结果。

在开始介绍内容页之前,还有两个概念需要强调:一是内容页中所有内容必须包含在Content控件中;二是内容页必须绑定母版页。虽然内容页的扩展名与普通ASP.NET页面相同,但是,其代码结构有着很大差别。在创建内容页的过程中,必须时刻牢记以上两个重要概念。

内容页Index.aspx文件源代码
 

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" Title="示例5-1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

    <img src="images/pagepic.gif" width="244" height="223" />

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">

    <p>&nbsp;</p><p>&nbsp;</p>

    <h1>网站介绍_IT知道网()</h1>

    <p>本页面采用来自ASP.NET 2.0技 术的母版页新特性进行开发。 主要包括两个页面:母版页和内容页。 母版页后缀名是.master,其封装网站中的共用元素。 内容页实际是普通的.aspx文件,它包含除母版页的其他内容。在运行时,ASP.NET引擎将两种页面内容合并执行,最后将结果发给客户端浏览 器。</p>

</asp:Content>

 以上粗 体代码是内容页的代码结构。从中可以看出,内容页与普通.aspx文件在代码上的不同。内容页没 有<html>、<body>、<form>等关键Web元素,这些元素都被放置在母版页中。内容页中除了代码头声 明,仅包含Content控件。内容页的代码头声明与普通.aspx文件相似。但是,新增加了两个属性MasterPageFile和Title。属性 MasterPageFile用于设置该内容页所绑定的母版页的路径,属性Title用于设置页面title值。在创建内容页过程中,由于已经指定了所绑 定母版页,因此,Visual Studio 2005将自动设置MasterPageFile属性值。另外,在源代码中,还设置了两个Content控件Content1和Content2。

两 个控件内部包含的内容是页面的非公共部分。通过设置属性ContentPlaceHolderID,将Content1与母版页的 ContentPlaceHolder1对应,将Content2与母版页的ContentPlaceHolder2对应。在页面运行时,Content 控件中包含的内容将显示在母版页中的对应位置。

ASP.NET之母版页和内容页之间的传值

获取母版页上文本框的值赋给内容页的文本框
this.TextBox1.Text = (Master.FindControl("textBox1") as TextBox).Text;
 
获取内容页上文本框的值赋给母版页的文本框
TextBox1.Text = (this.ContentPlaceHolder1.FindControl("textBox1") as TextBox).Text;

posted @ 2011-03-14 18:15  Marksion  阅读(421)  评论(0编辑  收藏  举报