asp.NET自定义服务器控件内部细节系列教程五
如大家要转载,请保留本人的版权:
/*
*Description:asp.NET自定义服务器控件内部细节系列教程
*Auther:崇崇-天真的好蓝
*MSN:chongchong2008@msn.com
*Dates:2007-05-20
*Copyright:ChongChong2008 YiChang HuBei China
*/
五 服务器控件的回传架构
参与回传架构主要有两个重要的接口IPostBackEventHandler和IPostBackDataHandler接口
IPostBackEventHandler接口使控件引发一个标志着已经发生回传的事件。
IPostBackDataHandler接口使控件检索已被传送的表单数据,从而相应的更新状态,然后在服务器端引发事件以标志其状态变化。
1。IPostBackEventHandler
1.1 把回传事件映射到服务器端事件
public interface IPostBackEventHandler
{
void RaisePostBackEvent(string eventArguments);
}
eventArguments参数是为了如果控件生成了能够引起回传事件的多个HTML标签,那么可以利用这个参数来识别而引发不同的事件。
1.2 生成回传的客户端脚本
如果想利用一个超级链接来引起回传,同样需要先实现IPostBackEventHandler接口,然后需要利用下面的方法:
Page.GetPostBackClientHyperlink(object ,string);
GetPostBackClientHyperlink主要实现两个功能:
第一:返回一个字符串"javascript:__doPostBack('youControlUniqueID','')",该字符串包括一个由页面框架生成的到__doPostBack javascript函数的调用。
第二:告知页面生成两个隐藏域(__EVENTTARGET和__EVENTARGUMENT),以及一个引起回传(____doPostBack)的javascript函数.
2。IPostBackDataHandler
为了参与数据回传处理必须实现IPostBackDataHandler接口,它右两个方法
public interface IPostBackDataHandler
{
bool LoadPostDate(string postDateKey , NameValueCollection postCollection);
void RaisePostDateChangedEvent();
}
在加载回传数据阶段,页面查看名/值表单传送集中的每一个名字,并且寻找控件树中与名字匹配的UniqueID控件。如果页面找到这样一个控件,并且这个控件实现IPostBackDataHandler,则页面在这个控件上调用LoadPostData.
LoadPostData方法有两个参数,一个包含回传元素名称的字符串和一个包含传送表单数据的名/值集的System.Collections.Specialized.NameValueCollection实例。控件可以用回传数据来更新它的状态。
如果控件状态在回传时改变,而且希望引发事件来标记此变化,那么必须从LoadPostData方法中返回True值。
当控件的LoadPostData方法返回True时,页面会调用此控件的RaisePostDateChangedEvent方法。
转载于:https://www.cnblogs.com/amboyna/articles/884748.html
asp.NET自定义服务器控件内部细节系列教程五相关推荐
- asp.NET自定义服务器控件内部细节系列教程四
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- asp.NET自定义服务器控件内部细节系列教程一
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- ASP .NET Core Web Razor Pages系列教程五:更新Razor Pages页面
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互 entity-framework(MySQL/MariaDB 版)
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...
- ASP.NET Core Web Razor Pages系列教程六:添加搜索功能
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 上一个教程:ASP .NET Core 系列教程三:自动生成Razor ...
- ASP.NET Core Web Razor Pages系列教程:使用ASP.NET Core创建Razor Pages Web应用程序
ASP .Net Core Razor Pages MySQL Tutorial 本系列教程翻译自微软官方教程,官方教程地址:Tutorial: Create a Razor Pages web ap ...
- ASP.NET Core 和 EF Core系列教程——CRUD
ASP.NET Core 和 EF Core系列教程--CRUD (2 / 10) CRUD 为创建.读取.更新.删除的英文首字母的缩写 作者:Tom Dykstra和Rick Anderson Co ...
- ASP.NET Core Web Razor Pages系列教程八: 添加验证
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...
最新文章
- 提升用户体验的必杀器——A/B实验统计方法解密
- 复制初始化和直接初始化
- Firefox 检测到该服务器正在将此地址的请求循环重定向。 此问题可能是因为禁用或拒绝 Cookie 导致。...
- 杂志订阅管理系统c++_有哪些值得收藏的室内设计杂志?
- C语言中32个关键字详解
- java socket.close_java – Socket.close()在Socket.connect()期间无效
- 智能语音翻译APP——腾讯翻译君
- 双线服务器托管的三大优势
- 硬件设备计算存储及数据交互杂谈
- 全网最细------爬取4k高清大图
- 值得珍藏的免费观影网站
- vue实现随机生成分享海报(内容动态)
- 游戏后台生成唯一ID
- 自动化测试效率提升方案
- 为什么要把DAO作为接口 再用impl类来实现?
- 元宇宙:从数字孪生到数字共生
- MPB:山大倪金凤组-培菌白蚁肠道簇虫分离与分子鉴定的方法
- 内置超声波振动筛换能器振子设计
- Android Gradle:依赖下载
- 通俗易懂!看完你就是半个天线专家了
热门文章
- VC6.0 如何改变对话框背景色
- android开机启动c程序,如何让A20,android开机自动启动C程序【转】
- admui 能再php上用吗,Javascript 方法
- Maven Filter
- 以太网的MAC帧(二)
- 上高职业技术学校计算机学几年,上高职业技术学校2021年有哪些专业
- Python 语法速览与实战清单
- Unencrypted connection refused. Goodbye. Connection closed by foreign host.
- 数据科学家最常用的10种算法
- who,cut,diff,which,whereis,locate,updatedb 命令的使用