快速业务通道

ASP.NET控件开发基础(20)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

上面我们讨论了数据绑定控件的做法,但都未涉及到asp.net2.0中数据源控件的用法,让用惯了数据源控件的人可能感觉不适应。这次我们就开始讨论在asp.net2.0中,我们该如何重新定义数据绑定控件。我一直在想,是先讨论数据源控件呢,还是先讨论数据绑定控件,两者是密不可分的。在看下文之前,我想大家应该对asp.net2.0中的数据源控件使用的简易性非常熟悉了。记得园子的开源项目NBear也为大家提供了数据源控件。个人认为数据源控件和数据绑定控件之间存在着一些约定关系,学习还当从易到难,这里就假定我们对内置的数据源已经能够熟练的使用了。这里就看看如果定义新的数据绑定控件.

一.数据绑定控件新做法

1.第一种为纯代码做法,这种做法比较的烦琐

2.新做法数据绑定控件与数据源控件结合.不同之处则是不需要写重复代码,如

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">
   <Columns>
     <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
     <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />
   </Columns>
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
   ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString2 %>"
   SelectCommand="SELECT [CompanyName], [ContactName] FROM [Customers]">
</asp:SqlDataSource>

上面的做法是asp.net2.0里面新增的,如果你没有学过asp.net1.1而直接学2.0的话,上面的写法是非常简单的,没有写一行的代码.

这样的做法可能会让人产生以下几点看法

(1)初学者认为asp.net真的很简单,是的很简单,在简单的同时你也该意识到数据源控件为你做了重复的工作,快速开发的同时你是否该了解下上面的做法是如何实现的

(2)接触过.net一段时间的人则会认为DataSource数据源控件只是小儿科,大项目怎么可以这么做,对其不放心,还是自己手动写代码比较放心-_-.

数据源控件好不好用这里不必讨论,但我想大多数人还是向其靠拢的.

二.数据绑定控件相同机制

数据绑定控件需要数据源

(1)在没有数据源控件之前,数据绑定控件需要先给DataDource属性赋值获取数据源,然后执行DataBind()方法

(2)在数据源控件出现之后,数据绑定控件仍然需要数据源,只不过方式发生了变化,不是通过DataDource属性直接的获取,而是间接的通过数据源控件获取,然后帮你自动执行了DataBind()方法

所以这里需要注意的是,当设置DataDourceID的时候,不需要再调用DataBind()方法,两种方法不可同时使用

站在使用者的角度,唯一的变化也就是给我们两种数据绑定做法的选择.偷懒的我们当然愿意选择后一种,一切交给数据源控件为我们处理.

三.数据绑定控件新的起点

上篇我们讲到过BaseDataList类.1.1中的旧的数据绑定控件从此抽象类中继承下来,而2.0中新的数据绑定控件,并没有这么做,而是从BaseDataBoundControl类重新开始,以此为基础.net为我们定义了一些比较实用的类.当然在.net2.0中,BaseDataList类也提供了DataDourceID属性,但微软也很明确的表示让我们弃用DataGrid,使用GridView.暂时我们先不去想为什么,只有了解以后,我们才能去比较

在微软的MSDN上,早就有篇文章介绍ASP.NET2.0和数据绑定控件:新的角度,新的做法 大家可以看看

这次我们只需要了解两个基类

ASP.NET控件开发基础(20)

两个类都为抽象类BaseDataBoundControl类定义了

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号