NULL

坚持点,平和点...【My open asp.net control projects http://www.codeplex.com/aspnetControl/】

  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理 ::
  32 随笔 :: 1 文章 :: 925 评论 :: 39 Trackbacks
    主题,复合控件的一些概况(复合控件的样式和事件都是比较麻烦的,所以还是还重最简单的入手)
概况 
    前几章弄的都是一些简单控件,有时候,我们可能需要开发一些更加复杂的控件,比如微软自带的登陆控件,如果我们还继承webControl类,然后重写复合控件里的每一个子控件,包括她们的事件,处理回传事件,回传数据,状态维护等,为了做一个小小的控件,代码却上千行,都快要疯了 .
    是的,使用复合控件,可以在一定程度上减轻开发人员的开发难度,她的子控件可以自己维护自己的状态,可以自己呈现自己等。当然,如果她的子控件定义自定义的样式类型,那么子控件的样式还得开发人员自己来维护。

“拿来“道不远人(希望THIN见谅)
图一(还是直接看效果图吧)

控件组成说明
控件分四部分,一部分,控件自己本身,即容器本身;二部分,up按纽;三部分down按纽;四部分,textbox文本框。
控件设置
四部分的边框都设置成5px,然后再分别设置四部分的的边框颜色,定义后三部分的定位方式,包括position,right,left,top,button等,但遗憾的是,默认的Style类型并没有定位position等定位样式属性,怎么办呢?当然只能重子控件的样式类型了,为了减低复杂度,这里先不讨论她的事件。

图二(先看控件的组成代码)
定义部分

Code

将子控件一一放入Controls

Code

定义复合控件最外层元素(DIV)的属性

Code

定义复合控件的最外层元素DIV

Code

将子控件的样式一一扔进writer流,并改写子控件样式(自己的PositionStyle类型,后面会着重说明)

Code

整个控件的呈现过程到此结束
本想在这里,把控件的样式也说了算了,但考虑到可能篇幅太长,看得太累,还是留着下一节再说(待续中...)
一点牢骚
其实可以多看看别人写的一些控件,比如我要学习复合自定义的样式,直接看看TableStyle样式就得了,看看她是怎么实现的,照葫芦画瓢就是了:)
demo将在下一节中提供,抱歉...




 

posted on 2008-04-16 09:55 王孟军! 阅读(2262) 评论(9)  编辑 收藏 所属分类: asp.net Controls

评论

#1楼  2008-04-16 10:09 李战      
楼主的光头俺喜欢,学习了。
  回复  引用  查看    

#2楼 [楼主] 2008-04-16 10:14 王孟军!      
@李战
别趁我的光头来呀!,注意这是tec blog
:)

  回复  引用  查看    

#3楼  2008-04-16 10:26 生鱼片      
学习
  回复  引用  查看    

#4楼  2008-04-16 10:28 留恋星空      
mark
  回复  引用  查看    

#5楼  2008-04-16 10:44 xrainfir      
学习
  回复  引用  查看    

#6楼  2008-04-16 11:24 Tony Zhou      
很多时候在1.1下,用户控件好多施展不开的地方。
有了复合控件,好多了。
  回复  引用  查看    

#7楼  2008-04-16 11:50 good man      
路过,学过,
  回复  引用  查看    

#8楼 [楼主] 2008-04-16 11:57 王孟军!      
@all boy
:)
  回复  引用  查看    

#9楼  2008-04-16 20:06 侯垒      

  回复  引用  查看