ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
为什么使用ListView+DataPager的方式实现分页显示?
.net提供的诸多数据绑定控件,每一种都有它自己的优点和缺点。如果需要对数据进行操作,如果数据量不大的情况下,DataList和GridView是最好的选择,但是他们会生产额外的<table><tr><tbody><td>标签。如果只是罗列出来一些简单的数据,出于对性能的考虑,repeater必然是首选。当然ListView和DataPager的组合必将是开发中的黄金组合,无论从性能上和功能实现上都是很棒的控件。
扩展性强,灵活度高:
ListView控件集成了DataGrid、DataList、Repeater和GridView控件的所有功能。它可以像Repeater控件那样,让我们在控件内写任何HTML代码。
.NET 3.5中给我们提供的新数据绑定控件ListView和DataPager,可以说,ListView就是DataGrid和 Repeater的结合体,它既有Repeater控件的开放式模板,又具有DataGrid控件的编辑特性。 这绝对是一个可以引起你兴趣的好东东,因为它给你提供了比DataGird丰富得多的布局手段,同时又具有DataGrid的所有特性。
具有分页功能:
ListView控件本身并不提供分页功能,但是我们可以通过另一个控件 – DataPager来实现分页的特性。 把分页的特性单独放到另一个控件里,会给我们带来很多好处,比如说可以让别的控件使用它,又比如说我们可以把它放在页面的任何地方。实质上,DataPager就是一个扩展ListView分页功能的控件。
ListView控件
ListView是用来显示数据的,它的使用类似于Repeater控件。 ListView控件中有n多模板,出示如下:
·LayoutTemplate
·ItemTemplate
·AlternatingItemTemplate
·SelectedItemTemplate
·EmptyItemTemplate
·EmptyDataTemplate
·ItemSeparatorTemplate
·GroupTemplate
·GroupSeparatorTemplate
·EditItemTemplate
·InsertItemTemplate
它 有很多的模板。 其中有许多新增的模板,如GroupTemplate和InsertItemTemplate。但我一般常用的就是 ItemTemplate,AlternatingItemTemplate ,EditItemTemplate ,InsertItemTemplate这几个。
继续摸索这个控件后,我发现它可以让你在它的模板内写任何HTML标记或控件,这将给我们带来很大的自由度。
用ListView显示数据
开始,你可以把ListView当作是Repeater来使用,也就是说它是模板驱动型的控件。 参考如下示例:
<asp:ListView ID="lv2" runat="server"
onpagepropertieschanging="lv_PagePropertiesChanging2"
onitemcanceling="lv2_ItemCanceling" onitemediting="lv2_ItemEditing"
onitemupdating="lv2_ItemUpdating"
onitemdeleting="lv2_ItemDeleting" DataKeyNames="id">
<EditItemTemplate>
<div class="lvData">
<div class="id"><%#eval_r("id")%></div>
<div class="proId"><%#eval_r("provinceID")%></div>
<div class="proName">
<asp:TextBox ID="txt" runat="server" Text='<%#eval_r("province")%>'></asp:TextBox></div>
<div class="edit">
<asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Update" >更新</asp:LinkButton>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Cancel" >取消</asp:LinkButton>
</div>
</div>
</EditItemTemplate>
<ItemTemplate>
<div class="lvData">
<div class="id"><%#eval_r("id")%></div>
<div class="proId"><%#eval_r("provinceID")%></div>
<div class="proName"><%#eval_r("province")%></div>
<div class="edit">
<asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" >编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete" >删除</asp:LinkButton>
</div>
</div>
</ItemTemplate>
<AlternatingItemTemplate>
<div class="lvData alterStyle">
<div class="id"><%#eval_r("id")%></div>
<div class="proId"><%#eval_r("provinceID")%></div>
<div class="proName"><%#eval_r("province")%></div>
<div class="edit">
<asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" >编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" CommandName="Delete" >删除</asp:LinkButton>
</div>
</div>
</AlternatingItemTemplate>
</asp:ListView>
增加分页功能
如 果你想为ListView增加分页功能的话,那么就需要使用DataPager控件了。这个分页控件是一个独立的控件,你可以把它放到页面的任何位置,然后使其联到你的ListView控件就可以完成分页的工作了。该分页控件所呈现出来的HTML标记为内联(Inline)元素,所以如果你想精确地设置其位置的话,可以参考下面的代码,为其包裹一个<div />标记。
给ListView控件添加以下属性,在翻页时给控件绑定新的页面索引:
onpagepropertieschanging="lv_PagePropertiesChanging2"
你可以像下面这样设置分页控件,并可以把其放到页面的任何位置。
<asp:DataPager ID="DataPager2" PagedControlID="lv2" runat="server">
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="True"
ShowLastPageButton="True" ShowNextPageButton="True"
ShowPreviousPageButton="True" />
</Fields>
</asp:DataPager>
通过上面的代码你会发现,我们可以通过设置DataPager控件的Fields,从而达到手动设置分页布局的目的。 另外还有一个关键点,就是DataPager控件的PagedControlID属性,你需要把它设置为ListView的ID。
当然你也可以把DataPager控件放到布局模板内。
把 分页功能作为一个单独的控件分离出来是一个非常好的注意 – 它会让我们有更多的布局和 显示上的自由度。但是,目前的分页控件还是有其局限性的。 它只能结合ListView控件一起工作 – 如果能用在Repeater或GridView上就更好了。另外,它也是要依赖于ViewState的。
还有,现在的DataPager控件没有分页事件,也没有SelectedPageIndex属性。
还有一点需要注意的是,ListView没有内置排序功能。
ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)的更多相关文章
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
使用ListView控件进行修改,删除与添加操作1.页面代码: <asp:ListView ID="lv2" runat="server" onpagep ...
- asp.net学习之 数据绑定控件--表格绑定控件
原文:asp.net学习之 数据绑定控件--表格绑定控件 数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...
- asp.net学习之 数据绑定控件--List数据绑定控件
原文:asp.net学习之 数据绑定控件--List数据绑定控件 List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自L ...
- asp.net学习之数据绑定控件、数据源控件概述
原文:asp.net学习之数据绑定控件.数据源控件概述 1.asp.net数据绑定控件分为三大类,每个类分别进行详细: ● 列表式数据绑定控件: 列表式数据绑定控件常用来在一个表格内的一个字 ...
- GridView数据绑定控件的模版列时设置显示的格式
形式 语法 结果 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2}&q ...
- vc 在edit控件中动态插入数据滚动显示
内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->G ...
- 《ASP.NET1200例》ListView 控件与DataPager控件的结合<二>
ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示 为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己 ...
- 《ASP.NET1200例》ListView 控件与DataPager控件的结合<一>
分页 在前一部分开始时介绍的原 HTML 设计中内含分页和排序,所以根据规范完整实现该网格的任务尚未完成.我们先分页,然后再排序. ListView 控件中的分页通过引入另一个新控件 Data ...
- 【转】ASP.NET常用数据绑定控件优劣总结
转自:http://www.cnblogs.com/Olive116/archive/2012/10/24/2736570.html ASP.NET常用数据绑定控件优劣总结 本文的初衷在于对Asp ...
随机推荐
- [C#][MVC]DropDownListFor 默认值无法选中的 BUG
本文来自:https://www.cnblogs.com/craze/p/6124575.html 关于mvc中@Html.DropDownListFor和@Html.DropDownList默认值无 ...
- 接口测试3-4使用csv进行接口测试
参照前面的例子 向URL发送corpid和corsecret2个参数,可以获取正确的tokenid https://qyapi.weixin.qq.com/cgi-bin/gettoken 数据 场景 ...
- 阿里云EC2+QEMU虚拟机+ROS完全教程!
---恢复内容开始--- 1.安装centos6.5 x64 同时记录,当前centos分配得到的IP,子网掩码,网关,以及MAC!!! 查看IP.mac命令ip add 查看网关命令cat /etc ...
- 怎样使用 css 的@media print控制打印
怎样使用 css 的@media print控制打印? <HTML> <HEAD> <TITLE> New Document </TITLE> < ...
- Vuex 状态管理模式
Vuex 是一个专为 Vue.js 设计的状态管理模式 vuex解决了组件之间同一状态的共享问题.当我们的应用遇到多个组件共享状态时,会需要: 多个组件依赖于同一状态.传参的方法对于多层嵌套的组件将会 ...
- 关于博主noble_
大家好啊,我是博主noble_,大家叫我noble就行了.我身处上海某初高中连体的市重点,校内OI比较弱. 个人常用OJ是洛谷,BZOJ,POJ,HDU,UVA.名字都叫noble_. 目前noble ...
- python中__name__的使用
这几天开始学习Python,遇到一些问题,也解决了一些问题. 其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不求甚解.这里作一下解释: 1:__name__是 ...
- Hadoop使用场景
Hadoop使用场景: 大数据量存储:分布式存储 日志处理: Hadoop擅长这个 海量计算: 并行计算 ETL:数据抽取到oracle.mysql.DB2.mongdb及主流数据库 使用HBase做 ...
- python数据结构之链表(一)
数据结构是计算机科学必须掌握的一门学问,之前很多的教材都是用C语言实现链表,因为c有指针,可以很方便的控制内存,很方便就实现链表,其他的语言,则没那么方便,有很多都是用模拟链表,不过这次,我不是用模拟 ...
- 超文本标记语言HTML
介绍html文档的基本结构,html常用标签的使用,理解html语言制作网页基本原理. html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母 ...