当前位置: 首页 > news >正文

内容页响应母版页控件的事件

内容页响应母版页控件的事件

左直拳

在内容页里面,如果想响应位于母版页的控件的事件,该怎么办呢?

MSDN开宗明义地告诉我们:对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。

那是否意味着内容页中不能处理母版页控件的事件?如果不行的话,真不方便!

不过我试了一下,发现只要将我们希望执行的函数委托给该控件的事件就可以。

比如说,在母版页中有个按扭

<asp:Button ID="Button1" runat="server" Text="Button"/>

那么在内容页中可以在Page_Load里委托函数:

protected void Page_Load(object sender, EventArgs e)

{

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

B1.Click += new EventHandler(B1_Click);

}

然后将自己希望执行的代码放在函数B1_Click里:

protected void B1_Click(object sender, EventArgs e)

{

Response.Write("Hello World!");

}

运行以后,按下Button1,页面即会显示Hello World!

如果母版页中也有该按扭Click事件:

protected void Button1_Click(object sender, EventArgs e)

{

Response.Write("Hello <city w:st="on"><place w:st="on">BeiJing</place></city>!");

}

那么这两个函数都会执行。顺序是先母版页,后内容页。

事件本质上是一个委托。委托这个东西,我的理解是一个函数的执行器,将函数传给它(委托给它,+=),就会按照先后顺序执行。委托就好比一支,函数就好比子弹。只要子弹尺寸口径合适(函数的参数、类型符合声明),不管是中国造的子弹,还是德国造的子弹,都可以打出去。给一发打一发,给两发打两发。

另外,访问母版页的控件,可以通过类似(Button)Page.Master.FindControl("Button1");的方式。如果想访问母版页的属性,需要在内容页加入类似一句:<%@ MasterType virtualpath="~/Master/list.master" %>

然后就可以通过 Master.属性 的方式访问了。注意前面没有Page.

相关文章:

  • AIX配置tomcat https的问题解决
  • 如何做个好员工?(转载)
  • 如何将数据导入到 SQL Server Compact Edition 数据库中(续)
  • Nginx学习资料汇总
  • struts2中interceptor命名的新变化
  • Java8 之 Stream API
  • struts2的客户端验证
  • 常用Java工具包
  • 嵌套母版页中的控件访问
  • 晨猫搜集的 技术博客
  • 汇编中一个有趣的问题
  • 信号量Semaphore 的故事
  • 构造函数和继承
  • java探索之native方法源码实现
  • java6的@override注解与java5的不同之处
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Angular4 模板式表单用法以及验证
  • canvas 绘制双线技巧
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript HTML DOM
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • miaov-React 最佳入门
  • mysql中InnoDB引擎中页的概念
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • redis学习笔记(三):列表、集合、有序集合
  • spring学习第二天
  • webpack4 一点通
  • 给第三方使用接口的 URL 签名实现
  • 试着探索高并发下的系统架构面貌
  • 微信公众号开发小记——5.python微信红包
  • 我有几个粽子,和一个故事
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • k8s使用glusterfs实现动态持久化存储
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)windows配置JDK环境
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (论文阅读40-45)图像描述1
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (转)德国人的记事本
  • ..回顾17,展望18
  • .apk文件,IIS不支持下载解决
  • .bashrc在哪里,alias妙用
  • .NET Core 成都线下面基会拉开序幕
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net6Api后台+uniapp导出Excel
  • .Net的DataSet直接与SQL2005交互
  • .NET运行机制
  • :中兴通讯为何成功
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [AutoSar]BSW_OS 02 Autosar OS_STACK