ASP.NET控件开发基础(17)2011-01-08Clingingboy本篇将开始介绍如自定义数据绑定控件,这里感谢很多人的支持,有你们的支持很高兴.这里首先需要大家熟悉asp.net模板控件的使用,还有自定义模板控件.因为数据绑定控件多是基于模板控件的.一.回顾如果你使用过asp.net内置的数据控件(如DataList,Repeater),你一定会这么做1.设置数据源 DataSource属性2.调用数据绑定 DataBind方法3.在控件的不同模板内使用绑定语法显示数据这三步应该是必须要做的其他更多的你可能需要对绑定的数据进行统一的一些操作(如时间格式化),或者对数据的某一项进行操作(对某一项进行格式化),或者需要触发模板控件内的一些事件(如databound事件).根据上面的一些需求,我们需要这样做1.对绑定的数据进行统一的一些操作: 为数据绑定控件定义Item项(表示列表的一条数据, 如Repeater的RepeaterItem)2.对数据的某一项进行操作: 因为定义了Item项,那你肯定需要一个ItemCollection集合,其可以方便的为你检索数据3.因为定义了RepeaterItem,原先的EventArgs和CommandEventArgs已经无法满足需求,我们需要自定义委托及其一个为控件提供数据的的ItemEventArgs上面三点有些并非必须定义,如第2点,还需要根据具体需求来定.但一个完成的控件是需要的.二.为数据控件做好准备这次的demo为不完整的Datalist控件,来源还是MSDN的例子,我们命名为TemplatedList,此控件未定义ItemCollection集合好了,根据上面的分析我们先为TemplatedList提供项和委托及为事件提供数据的几个EventArgs,请看下面类图

1.TemplatedListCommandEventArgs为Command事件提供数据2.TemplatedListItemEventArgs为一般项提供数据3.TemplatedListItem表示TemplatedList的项