ASP.NET 实践:引用 ASP.NET 控制页的内容

你可以在内容页中编写代码来引用控制页中的属性、方法、以及子控件,不过会受到某种规则的限制:对于属性和方法,只有它们被定义成控制页中的公共成员的时候,你才可以进行引用,也包括公共属性和公共方法。另外,你还可以在独立于公共成员引用的方式之外对控制页中的控件进行引用。

如何引用控制页中的公共成员
  1. 在内容页中添加一个 @ MasterType 指令。并在该指令中设置 VirtualPath 参数的值为当前控制页的路径,如下实例:

    <%@ MasterType virtualpath="~/Masters/Master1.master" %>
    

    提示:该指令会导致内容页的 Master 属性被强类型化。

  2. 编写代码把控制页中的公共成员当作 Master 属性成员来使用,在该实例中,是指在内容页的文本输入框中为控制页中的公共属性 CompanyName 赋值:

如何引用控制页中的控件
  • 使用 FindControl 方法,对把 Master 当作命名容器时所返回的值进行使用。

    如下实例显示了如何使用 FindControl 方法来引用控制页中的两个控件(一个 TextBox 控件和一个 Label 控件)。因为 TextBox 控件位于 ContentPlaceHolder 的内部,所以你必须首先获取 ContentPlaceHolder 控件的引用,然后使用它的 FindControl 方法对 TextBox 控件进行定位。

    void Page_Load()
    {
        // 在 ContentPlaceHolder 中获取 TextBox 控件的引用
        ContentPlaceHolder mpContentPlaceHolder;
        TextBox mpTextBox;
        mpContentPlaceHolder = 
          (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
        if(mpContentPlaceHolder != null)
        {
            mpTextBox = 
                (TextBox) mpContentPlaceHolder.FindControl("TextBox1");
            if(mpTextBox != null)
            {
                mpTextBox.Text = "TextBox 已经找到!";
            }
        }
        
        // 在 ContentPlaceHolder 之外获取 Label 控件的引用
        Label mpLabel = (Label) Master.FindControl("masterPageLabel");
        if(mpLabel != null)
        {
            Label1.Text = "控制页的标签 = " + mpLabel.Text;
        }
    }
    

转载于:https://www.cnblogs.com/Laeb/archive/2006/12/27/605266.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值