缘起
今天其他项目的同事碰到一个bug,封装的一个控件有些问题。先就描述一下这个控件。
控件是从ASP.NET自身的CheckBoxList派生而来的,然后扩展一些功能,控件最后样式如下图所示:
点击展开按钮后,在控件下方显示一个浮动层,里面放着一个CheckBoxList:
(暂时没有控件的真实截图,暂且对付着看吧,中间有黑点的表示选中)
给该控件扩展了一个事件,当点击展开的时候触发该事件,回发到服务器端,从数据库里读取数据,然后决定哪些值选中。代码示例:
class DropDownListEx : CheckBoxList
2: {
event EventHandler<EventArgs> Expanded;
4:
virtual OnExpanded(EventArgs e)
6: {
null)
this,e);
9: }
10:
void OnPreRender(EventArgs e)
12: {
base.OnPreRender(e);
//注册回发,为扩展事件
this.Enabled)
this);
17: }
18:
string postDataKey, NameValueCollection postCollection)
20: {
//判断按钮是否点击了,模拟的
)
23: {
//触发Expanded事件
new EventArgs());
true;
27: }
else
base.LoadPostData(postDataKey,postCollection);
30: }
31: }