• 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" %> 这样就可以在内容页上直接引用母版页的属性了
  • 相关阅读:
    Linux chattr 文件保护
    ArcGIS案例学习笔记-批处理擦除挖空挖除相减
    ArcGIS案例学习笔记-手动编辑擦除挖空挖除相减
    GIS案例学习笔记-CAD数据分层导入现有模板实例教程
    GIS案例学习笔记-ArcGIS整图大图出图实例教程
    Arcgis map export or print Error: Cannot map metafile into memory. Not enough memory
    [图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转]
    GIS案例学习笔记-明暗等高线提取地理模型构建
    地理处理模型、案例、教程、培训低价发送
    GIS工具-shp浏览器
  • 原文地址:https://www.cnblogs.com/oldkingsir/p/2365652.html
Copyright © 2020-2023  润新知