在实现asp.net的自定义控件中,若要实现数据的回发或者post数据,那自义控件必须实现IPostBackDataHandler接口, 在该接口中有两个方法一个是LoadPostData,另一个是RaisePostDataChangedEvent。第一个方法用于在回发数据时,填充自定义控件的相关属性,第二个方法用于激发控件相关的事件。也就是说这两个方法,应该是在提交数据的时候进行调用的。
可是,我们在实现自己的控件时,虽然继承了 IPostBackDataHandler,但是在提交数据的时候确发现程序没有去调用 IPostBackDataHandler 中的方法。经过研究发现,若要实现数据回发,除了需要实现IPostBackDataHandler接口外,还需要将控件注册成需要回发数的控件。要实现注册,就是在自定义控件里重写OnPreRender方法,并在该方法中调用Page.RegisterRequiresPostBack(this);这句代码。写法如下:
复制代码 代码如下:
public class MyControl : WebControl, IPostBackDataHandler{
protected override void OnPreRender(EventArgs e)
{
Page.RegisterRequiresPostBack(this);
base.OnPreRender(e);
}
}
通过实现以上代码,当在提交数据时,就会发现IPostBackDataHandler接口的方法,就被调用了。接下来,怎么做,你懂的啊。
您可能感兴趣的文章:- asp.net自定义控件代码学习笔记
- asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图
- Asp.net 动态加载用户自定义控件,并转换成HTML代码
- asp.net DropDownList自定义控件,让你的分类更清晰
- asp.net中使用自定义控件的方式实现一个分页控件的代码
- Asp.net清空控件值的方法(可自定义控件类型)
- asp.net自定义控件中注册Javascript问题解决方案
- 浅谈ASP.NET中最简单的自定义控件
- asp.net动态加载自定义控件的方法
- Asp.net自定义控件之加载层