方崇德的专栏

有一天要点燃闪电火花的人,必须长时期--做天上的云。

有关模板控件的一点认识

创建一个简单的完整模板服务器控件步骤:
1、定义要和模板控件类一起使用的容器类。

2、用ParseChilden特性标记控件类,使模板属性中的Html元素能被页面分析器解析;

3、为每个定义的模板呈现ITemplate类型公有属性;

4、用TemplateContainer特性装饰模板属性,来通知将会使用模板控件类型的运行时;[TemplateContainer(typeof(TemplatedListItem))]

5、创建容器类实例或子控件实例,使用InstantiateIn方法内联它们,并绑定数据到容器实例或子控件实例,最后把它们添加到服务器控件集 

 合中去;

动态模板:
1、定义一个类实现ITemplate接口;
2、在这个类中实现ITemplate唯一的方法InstantiateIn;

创建一个简单的模板化数据绑定控件步骤:
1、定义实现INamingContainer接口的控件;

2、定义Itemplate类型的属性;模板的逻辑容器(在 TemplateContainerAttribute 属性中指定)必须具有要将数据绑定到的属性。根据约   

   定,该属性名为DataItem

3、重写 DataBind 方法(继承自 Control)以提供数据绑定逻辑。此操作必须包括以下步骤:
     a:调用基类的 OnDataBinding 方法以调用对您的控件计算数据绑定表达式的处理程序(由该页附加)。
     b:清除 Controls 集合。
     c:清除子控件的 ViewState。
     d:使用数据源创建子控件。
     e:向 ASP.NET 页框架发出信号以跟踪控件的 ViewState。

4、重写 CreateChildControls 以在回发方案中重新创建子控件。这涉及清除 Controls 集合以及使用视图状态而不是数据源创建控件层次   

   结构。

5、定义一个具有空元素的数据源,并且在回发期间创建控件层次结构时使用该数据源而不是实际数据源。步骤 3 和步骤 4 分别使用该数据  

    

源和保存的视图状态创建控件层次结构。虚拟数据源使控件能够为这两个步骤的公共元素实现单个代码路径。(方法CreateControlHierarchy)

阅读更多
个人分类: 程序人生
想对作者说点什么? 我来说一句

海关电子口岸一点控件

2015年07月30日 668KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭