内容页如何引用母板页的内容

    可以在内容页中编写代码来引用母版页中的属性、方法和控件,但这种引用有一定的限制。对于属性和方法的规则是:如果它们在母版页上被声明为公共成员,则可以引用它们。这包括公共属性和公共方法。在引用母版页上的控件时,没有只能引用公共成员的这种限制。

    引用母版页上的公共成员
1.在内容页中添加 @ MasterType 指令。在该指令中,将 VirtualPath 属性设置为母版页的位置,如下面的示例所示:<%@ MasterType virtualpath="~/Masters/Master1.master" %> 此指令使内容页的 Master 属性被强类型化。
2.编写代码,将母版页的公共成员用作 Master 属性的一个成员,如本例中,将母版页名为 CompanyName 的公共属性的值赋给内容页上的一个文本框

    引用母版页上的控件
使用 FindControl 方法,将 Master 属性的返回值用作命名容器。

    下面的代码示例演示如何使用 FindControl 方法获取对母版页上的两个控件的引用(一个 TextBox 控件和一个 Label 控件)。因为 TextBox 控件处在 ContentPlaceHolder 控件的内部,必须首先获取对 ContentPlaceHolder 的引用,然后使用其 FindControl 方法来定位 TextBox 控件。

ContractedBlock.gif ExpandedBlockStart.gif 引用母板页内容
None.gifvoid Page_Load()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
// Gets a reference to a TextBox control inside 
InBlock.gif    
// a ContentPlaceHolder
InBlock.gif
    ContentPlaceHolder mpContentPlaceHolder;
InBlock.gif    TextBox mpTextBox;
InBlock.gif    mpContentPlaceHolder 
= 
InBlock.gif      (ContentPlaceHolder)Master.FindControl(
"ContentPlaceHolder1");
InBlock.gif    
if(mpContentPlaceHolder != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        mpTextBox 
= 
InBlock.gif            (TextBox) mpContentPlaceHolder.FindControl(
"TextBox1");
InBlock.gif        
if(mpTextBox != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            mpTextBox.Text 
= "TextBox found!";
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
// Gets a reference to a Label control that not in 
InBlock.gif    
// a ContentPlaceHolder
InBlock.gif
    Label mpLabel = (Label) Master.FindControl("masterPageLabel");
InBlock.gif    
if(mpLabel != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        Label1.Text 
= "Master page label = " + mpLabel.Text;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}


 

转载于:https://www.cnblogs.com/hide0511/archive/2006/09/21/511272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值