有关模板控件的一点认识

创建一个简单的完整模板服务器控件步骤:
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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值