zoukankan      html  css  js  c++  java
  • asp.net 对母版页的控件事件

    1、在内容页上 访问母版页上的控件

    在内容页中有个属性Master,可以通过它访问母版页。如我们要修改母版页上的标题,我们看到显示标题的那个Label的ID为Label1,在Page_Load事件中增加以下代码:

        protected void Page_Load(object sender, EventArgs e)     {         if (!IsPostBack)             ((Label)Master.FindControl("Label1")).Text = "标题被修改了!";     }

    2、在内容页访问母版页上 自定义控件

    假如要访问的控件是用户控件,这样写

    MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl1”);

    多半会编译出错,说缺乏MyCtrl的定义。原因是该控件在母版页上声明:

    <%@ Register Src="myCtrl.ascx" TagName="myCtrl" TagPrefix="uc1" %>

    一般情况下在内容页就不用再声明了。但如果要访问它就不同,也要在内容页的头部加上这一句。并没有重复声明的麻烦。

    3、在内容 页上 调用母版页上的控件事件

    只需在内容页上采用FindControl找到该控件然后在添加事件委托及可,但需要 注意的是母版页 和 内容页 的事件加载顺序 ,如果在内容页和 母版页都有同样的事件,则要考虑该哪里添加好事件了。

    添加方式 如:

    在内容页添加

    protected void Page_Load(object sender, EventArgs e)

    {

    Button B1 = (Button)Page.Master.FindControl("Button1");

    B1.Click += new EventHandler(B1_Click);

    } protected void Button1_Click(object sender, EventArgs e)

    {

            this.Response.Write("<script   language='javascript'>alert('completed!');</script>");

    }

    下面是母版页与内容页合并后事件的发生顺序:

    1. 母版页控件 Init 事件。

    2. 内容控件 Init 事件。

    3. 母版页 Init 事件。

    4. 内容页 Init 事件。

    5. 内容页 Load 事件。

    6. 母版页 Load 事件。

    7. 内容控件 Load 事件。

    8. 内容页 PreRender 事件。

    9. 母版页 PreRender 事件。

    10. 母版页控件 PreRender 事件。

    11. 内容控件 PreRender 事件。

    4、在内容页访问母版页上的属性 要访问母版页上的属性必须先在内容页上添加对母版页的引用如:<%@ MasterType virtualpath="~/PageTemplate/PageMaster.master" %> 这样就可以在内容页上直接引用母版页的属性了
  • 相关阅读:
    docker常用软件安装及使用
    生成base64位图片验证码
    项目经理的特殊需求,对象的移动,
    集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现
    nginx请求转发配置
    nginx的conf文件,两种配置方式,第一种无ssl证书,第二种有ssl证书。
    Springboot集成WebSocket通信全部代码,即扣即用。
    Centos7上安装docker
    mysql 5.7 的 /etc/my.cnf
    【图嵌入】DeepWalk 和 Node2Vec
  • 原文地址:https://www.cnblogs.com/oldkingsir/p/2365652.html
Copyright © 2011-2022 走看看