datalist和repeater(datalist和select的区别)

http://www.itjxue.com  2023-01-25 00:14  来源:未知  点击次数: 

总结datalist控件和repeater控件的异同

列表类

GridView

控件

GridView

控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。

特征:一行一条记录,就像新闻列表一样;带分页功能。

DataGrid

控件(建议用

GridView

控件代替)

没有出现

GridView

之前,就用

DataGrid。除了添加利用数据源控件功能的新功能,GridView

控件还实现了某些改进,例如,定义多个主键字段的功能、使用绑定字段和模板的改进用户界面自定义以及用于处理或取消事件的新模型。

DataList

控件

DataList

控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对

DataList

控件进行配置,使用户能够编辑或删除表中的记录。(DataList

控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList

控件与

Repeater

控件的不同之处在于:DataList

控件将项显式放在

HTML

表中,而

Repeater

控件则不然。

特征:一行可以有多条记录,就像图片列表一样;分页功能需要手写。

Repeater

控件

Repeater

控件使用数据源返回的一组记录呈现只读列表。与

FormView

控件类似,Repeater

控件不指定内置布局。您可以使用模板创建

Repeater

控件的布局。

实现DataList和Repeater控件的分页显示

;?? 提供了三个功能强大的列表控件 DataGrid DataList和Repeater控件 但其中只有DataGrid控件提供分页功能 相对DataGrid DataList和Repeater控件具有更高的样式自定义性 所以很多时候我们喜欢使用DataList或Repeater控件来显示数据 ?? ?? ?? 实现DataList或Repeater控件的分页显示有几种方法 ?? 写一个方法或存储过程 根据传入的页数返回需要显示的数据表(DataTable) ?? 使用PagedDataSource类 ?? ?? 本篇文章主要说怎么使用PagedDataSource类实现DataList和Repeater控件的分页显示 DataGrid控件内部也使用了PagedDataSource类 PagedDataSource 类封装 DataGrid 控件的属性 这些属性使 DataGrid 可以执行分页 ?? ?? PagedDataSource 类的部分公共属性 ?? AllowCustomPaging 获取或设置指示是否启用自定义分页的值 ?? AllowPaging 获取或设置指示是否启用分页的值 ?? Count 获取要从数据源使用的项数 ?? CurrentPageIndex 获取或设置当前页的索引 ?? DataSource 获取或设置数据源 ?? DataSourceCount 获取数据源中的项数 ?? FirstIndexInPage 获取页中的第一个索引 ?? IsCustomPagingEnabled 获取一个值 该值指示是否启用自定义分页 ?? IsFirstPage 获取一个值 该值指示当前页是否是首页 ?? IsLastPage 获取一个值 该值指示当前页是否是最后一页 ?? IsPagingEnabled 获取一个值 该值指示是否启用分页 ?? IsReadOnly 获取一个值 该值指示数据源是否是只读的 ?? IsSynchronized 获取一个值 该值指示是否同步对数据源的访问(线程安全) ?? PageCount 获取显示数据源中的所有项所需要的总页数 ?? PageSize 获取或设置要在单页上显示的项数 ?? VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数 ?? ?? 这些属性是否和DataGrid的属性很相似?没错 DataGrid控件就是使用PagedDataSource类来实现数据分页显示的 下面举个使用PagedDataSource类实现DataList和Repeater控件的分页显示的例子 ?? ?? public void Page_Load(Object src EventArgs e) ?? { ?? OleDbConnection objConn=new OleDbConnection(@ Provider=Microsoft Jet OLEDB ; Data Source=c:\test mdb ); ?? OleDbDataAdapter objCommand=new OleDbDataAdapter( select * from Users objConn); ?? DataSet ds=new DataSet(); ?? objCommand Fill(ds); ?? ?? //对PagedDataSource 对象的相关属性赋值 ?? PagedDataSource objPds = new PagedDataSource(); ?? objPds DataSource = ds Tables[ ] DefaultView; ?? objPds AllowPaging = true; ?? objPds PageSize = ; ?? int CurPage; ?? ?? //当前页面从Page查询参数获取 ?? if (Request QueryString[ Page ] != null) ?? CurPage=Convert ToInt (Request QueryString[ Page ]); ?? else ?? CurPage= ; ?? ?? objPds CurrentPageIndex = CurPage ; ?? lblCurrentPage Text = Page: + CurPage ToString(); ?? ?? if (!objPds IsFirstPage) ?? lnkPrev NavigateUrl=Request CurrentExecutionFilePath + ?Page= + Convert ToString(CurPage ); ?? ?? if (!objPds IsLastPage) ?? lnkNext NavigateUrl=Request CurrentExecutionFilePath+ ?Page= + Convert ToString(CurPage+ ); ?? ?? //把PagedDataSource 对象赋给Repeater控件 ?? Repeater DataSource=objPds; ?? Repeater DataBind(); ?? } ?? 这样就可以很简单的实现DataList和Repeater控件的分页显示 但这样做有个缺点 就是每次都要把所有页的数据Select出来 DataGrid也是这样 这样会降低一点效率(大多时候体会不出来差别) 如果使用第一种方法就可以只Select出当前页的数据(实现方法请查看有关文章) lishixinzhi/Article/program/net/201311/13655

数据控件GridView、DataList和Repeater都能实现数据表中多行数据的显示

简单的说:GridView,DataList都是从WebControl派生出来的,拥有WebControl样式属性,自身会被解析为table,其中的每一行会被解析为tr-td

Repeater是从Control派生出来的,它只是重复模板中的内容,这也是为什么repeater没有提供ItemStyle,SelectItemTemplate这些模板和样式控制的原因

从灵活性上讲肯定是Repeater更灵活,他只是循环内容,不用产生.net指定的一系列垃圾代码,但是同时他也失去了.net提供的部分功能。但是编译生成的html更为简单,因此效率也相对要高

从使用上讲的话,就要看你比较善于使用哪个了,Repeater比较容易设置样式,GridView比较容易做增删改等操作。

在ASP.Net 中,GridView 、DataList、Repeater 有什么区别?

GridView DataList Repeater 这三个都是用来配置并显示数据源的 数据控件

GridView是按数据库字段横向排列内容的 而且可以跟换GridView的外表美观度 一般用来绑定用户信息表的 可以直接设置分页显示

而DataList则是纵向排列的 不可以改变外表美观,除非用样式表。不可以直接启用分页除非用第三方控件辅助达到也可用Repeater 一般用来显示用户投诉那种表的类型

换句话说功能是一样的只不过格式的排列可不同

Repeater 我很少用,个人觉的用处就是 搭配Repeater 使用 起到辅助DataList实现分页功能

比如

Repeater1.DataSource=objPds;

Repeater1.DataBind();

PagedDataSource 对象赋给Repeater控件起到对 DataSource的绑定作用

(责任编辑:IT教学网)

更多

推荐excel文章