900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > asp.NET自定义服务器控件内部细节系列教程五

asp.NET自定义服务器控件内部细节系列教程五

时间:2022-11-30 09:53:15

相关推荐

asp.NET自定义服务器控件内部细节系列教程五

如大家要转载,请保留本人的版权:

/*

*Description:自定义服务器控件内部细节系列教程

*Auther:崇崇-天真的好蓝

*MSN:chongchong@

*Dates:-05-20

*Copyright:ChongChong 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方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。