天天看点

asp.net总结之Repeater,DataList和DataGrid

        从项目开始到结束纯的用在此项目的时间为半个月的时间,其中将视频中讲到的大例子做了一遍,过程还是很可贵的,在这个视频中主要学到了HTML控件和WEB控件,知道了使用动态控件和静态控件的利弊,了解了这两种控件的区别和联系,之后我们又深入的结合例子学习很多具体的控件,其实与之前我们接触的大同小异,还有几个我们之前没有接触过的,给我印象最深的就是那六个用起来很方便也很常见的验证控件还有那三种数据控件,这里边老师也帮我们重温了ADO.NET的一些知识,学起来还是很熟悉的,总之学习了这部分知识没有给自己添加多余的压力,快乐着学习,这何尝不是一种很好的状态呢。

        前面提到的六种验证控件在学习的过程中我已经有了总结,详见:                   

        http://http://rong1224017082.blog.163.com/blog/static/186302404201371912931158

        接下来我来分析一下前面提到的那三种模板控件,它们属于Web服务器控件,分别Repeater,DataList和DataGrid

        1.什么是模板控件呢?

        答:模板是一组 HTML 元素和控件,它们构成控件特定部分的布局,由 HTML和嵌入的服务器控件组成。 当控件在 ASP.NET 网页中运行时,控件基础结构呈现模板的内容,而不是控件的默认 HTML。其实说白了它们就相当于我们在vb.net中常用来显示数据的DataGridView控件

       2.那么我们为什么要使用模板控件呢?

       我说是为了方便,这样可能大家还不能认可我的解答,下面我来说一下不使用模板时有多麻烦大家就知道啦。Response.Write()这个大家熟悉吧,那么我们想一下要是通过这个方法将数据库中的内容通过一个表格的形式显示出来怎样做呢?我们需要输出一个〈table〉标签,然后开始循环。在循环中,每输出一条记录,需要先输出一个〈tr〉标签以及若干对〈td〉标签和〈/tr〉标签。最后,以一个〈/table〉标签结尾。这样是不是很麻烦呢?

        ASP.NET帮我们准备了三个Web服务器控件,可以很轻松的将数据库中的数据显示出来。接下来我会通过对比找到它们的相同点和不同点。进而更加轻松的了解和使用它们

       3.共同点:

asp.net总结之Repeater,DataList和DataGrid

       解析:

        1.虽然它们都可以通过模板显示数据,但是DataList和Reperter必须使用模板,而DataGrid还允许 通过 TemplateColumn而只使用模板来显示一列;

        2.数据源属性有好几种,我们熟悉的有DataSet,sqlDataReader,数组等;

        3.至于前面我们说的通过表格显示数据还需要一个循环,这里就不用那么麻烦了,DataBind() 方法就帮我们解决啦,它通过遍历一个特定的DataSource中的记录,并对其中的每条记录建立一个条目并对应数据控件的Item集。数据控件中的每个条目将成为一个类的实例。这个类因数据控件的不同就有所区别啦。例如:DataGrid中的 条目是DataGridItem类的一个实例,Reperter中的条目则是RepeaterItem类的一个实例

       4.下面我们从某些角度通过三个方面对这三个控件进行比较

           a.从性能看:

asp.net总结之Repeater,DataList和DataGrid

          表现在:最明显的由DataGrid所生成的ViewState将会相当庞大,特别是在DataGrid含有较多的行时。

          b.从可用性看:  

asp.net总结之Repeater,DataList和DataGrid

        表现在:

       1.DataList在定制数据输出样式方面最为灵活通过设定RepeatColumn属性,你可以设 置在一行中显示多少条记录,更进一步,你甚至可以指定DatList的内容不显示在表格中,而〈span〉标签中,这可以通过设定RepearLayout属性来实现 ;

       2.DataGrid通过设置AllowSorting属性true,并加入少量代码,就具备了按不同字段序 的功能,分页以及单条记录编辑的功能也能过设定属性来解决,但它始终只能是 HTML表格,这是很大的缺陷了,死板;

       3.Repeater在格式化设定上的欠缺直接反应到开发时间的延长,其在内建功能(分页,排序及编辑)上的支持也就显得不足了

        c.从开发时间看:

asp.net总结之Repeater,DataList和DataGrid

         表现在:

         1.实现DataList中的分页、排序功能时需呀通过巧妙的编程加以实现,这就需要耗费一些开发时间;

         2.DataGrid通过设置属性就可以实现分页、排序功能;

         3.Repeater在格式化设定上的欠缺直接反应到开发时间的延长

         5.那么这三种控件分别在什么时候最容易被使用呢?

         如果需要用户对数据记录进行排序或编辑或更新,删除时使用DataGrid;如果用户要求制定出很特别的数据输出样式则选择DataList;如果用户对于如何显示数据无所谓的话,完全可以放心的使用Repeater

       根据自己的需求选择合适的控件之后,关于具体怎样实现那就需要大家底下再好好研究研究啦,动手实践一下比听好很多呢,同志们加油,下一篇文章我将对前边提到的HTML控件和WEB控件的区别和联系做一个总结,希望大家提出宝贵的建议。