文章教程

13.2ListView和DataPager控件

8/31/2020 9:37:14 PM 人评论 次浏览

13.2 ListView和DataPager控件

利用ASP.NET的ListView控件,可以绑定从数据源返回的数据项并显示它们,这些数据可以显示在多个页面。可以逐个显示数据项,也可以对其分组,ListView的分页功能是通过新的DataPager控件实现的,ListView控件在工具箱的“数据”选项卡中,如图13-16所示。

alt

图13-16 ListView控件

13.2.1 ListView控件简介

与DataList和Repeater控件相似,ListView控件也适用于任何具有重复结构的数据,但与这些控件不同的是,ListView控件允许用户编辑、插入和删除数据,以及对数据进行排序和分页,所有这一切都无须编写任何代码。

通过下列方法可将ListView控件绑定到数据。

(1)使用DataSourceID属性。利用此方法可以将ListView控件绑定到数据源控件,如SqlDataSource控件。之所以推荐这种方法,因为它使ListView控件能够充分利用数据源控件的功能。此外,还提供排序、分页、插入、删除和更新等内置功能。利用此方法可以使用双向绑定表达式。

(2)使用DataSource属性。利用此方法可以绑定到各种对象,包括ADO.NET数据集和数据读取器及内存中的结构(如集合)。若要利用此方法,需要编写代码才能实现排序、分页和更新之类的任何其他功能。

13.2.2 对ListView项应用样式

ListView控件并不支持BackColor和Font等样式属性,因此,若要向ListView控件应用样式,必须对ListView模板中的各控件应用级联样式表(CSS)类或内联样式元素。某些对象支持允许对输出元素设置样式的属性,例如,NumericPagerField对象包括下列属性。

(1)NumericButtonCssClass属性,可为用于按页码在数据页间移动的按钮指定CSS类名。

(2)CurrentPageLabelCssClass属性,可为当前页码指定CSS类名。

(3)NextPreviousButtonCssClass属性,可为用于移到数字按钮的下一个或上一个组的按钮指定CSS类名。

13.2.3 使用DataPager分页

若要使用户能够按页查看ListView控件中的数据,可以使用DataPager控件。DataPager控件可以位于LayoutTemplate模板内部,也可以位于ListView控件之外的页面上。如果DataPager控件不在ListView控件内,必须将PagedControlID属性设置为ListView控件的ID。

DataPager控件支持内置的分页用户界面。可以使用NumericPagerField对象,此对象允许用户按页码选择数据页。此外,也可以使用NextPreviousPagerField对象。利用此对象,用户可以逐页浏览数据页,也可以直接跳到第一个或最后一个数据页。

默认情况下,如果用户在某个页上选择一个行,则将在每个页上选择此行。如果只想将用户已选定的行(由此行的数据键标识)保持选择,则可以将EnablePersistedSelection属性设置为true。

数据页的大小由DataPager控件的PageSize属性设置,单个DataPager控件中可以使用一个或多个页导航字段对象。

另外,通过使用TemplatePagerField对象,还可以创建自定义分页用户界面。在TemplatePagerField模板中,可以使用Container属性来引用DataPager控件,此属性可提供对DataPager控件各属性的访问,这些属性包括起始行索引、页面大小,以及当前绑定到ListView控件的总行数。

下面代码使用一个在ListView控件的LayoutTemplate模板中包括的DataPager类。

alt

13.2.4 使用ListView控件对数据进行分页和排序

使用ListView控件也可以轻松地实现对数据的分页、显示、排序等功能。因此,本节将通过示例演示使用ListView控件对数据进行分页、排序等。

示例13-3:使用ListView控件实现分页和排序

(1)打开VS2010,创建一个新的空网站Ch13-3,添加窗体Default.aspx。

(2)打开“Default.aspx”页面,切换到“设计”视图。从“工具箱”的“数据”选项卡中,将ListView控件拖到页面上,如图13-17所示。

alt

图13-17 拖到ListView控件到页面

(3)在“常规ListView任务”菜单上的“选择数据源”下拉列表中,单击“<新建数据源...>”,此时,显示“数据源配置”向导,示例中使用SqlDataSource控件连接到SQL Server数据库。在“为数据源指定ID”框中,将显示默认的数据源控件名称“SqlDataSource1”,如图13-18所示。

alt

图13-18 数据源配置向导

(4)单击“确定”按钮,显示“配置数据源”向导,如图13-19所示。

alt

图13-19 配置数据源

(5)在弹出的“添加连接”对话框中配置服务器名为本机的服务器,选择“使用Windows身份验证”后登录到服务器,数据库为Test数据库,如图13-20所示。

alt

图13-20 添加连接

(6)单击“测试连接”按钮,如果弹出“测试连接成功”信息对话框,说明数据库连接成功,如图13-21所示。单击“确定”按钮,完成数据库连接配置。

alt

图13-21 测试成功

(7)配置完成后返回到数据源配置向导,在数据源下拉框中已经出现前面配置的数据源,单击“下一步”按钮,如图13-22所示。

alt

图13-22 选择数据库连接

(8)系统弹出提示“是否保存数据连接字符串”,若以后还需要使用此连接,选择保存,如图13-23所示。

alt

图13-23 选择保存

(9)单击“下一步”按钮,在“定义自定义语句或存储过程”页面中,如图13-24所示,输入以下SQL查询,该查询从“UserInfo”数据库中查询用户数据,如图13-25所示。

alt

图13-24 配置Select语句

alt

图13-25 输入SQL查询

也可以单击“查询生成器”按钮,使用“查询生成器”窗口创建查询,然后使用“执行查询”按钮对其进行验证。

(10)单击“下一步”按钮,单击“测试查询”按钮确保要检索的正是所需的数据,如图13-26所示,最后单击“完成”按钮。

alt

图13-26 测试查询

(11)利用该向导创建SqlDataSource控件并将其添加到页面,并把前面添加的ListView控件绑定到SqlDataSource控件,如图13-27所示。

alt

图13-27 绑定到LiseView控件

查看SqlDataSource控件的属性,则会看到该向导已为ConnectionString和SelectCommand属性创建了值。

alt

(12)返回到页面的设计实例,右击ListView控件,单击“显示智能标记”。在“常规ListView任务”菜单上,单击“配置ListView”命令,如图13-28所示,显示“配置ListView”对话框,选择“启用分页”,如图13-29所示。

alt

图13-28 ListView任务

alt

图13-29 配置ListView

若希望选择不同的样式,以便可以更加轻松地查看数据,执行此操作时,在“选择样式”下选择一种样式(如“彩色型”)。

(13)单击“确定”按钮,返回到设计视图,如图13-30所示。

alt

图13-30 设计好后的前台

(14)在继续之前,可以测试下ListView控件,按Ctrl+F5组合键运行该页,显示效果如图13-31所示。

alt

图13-31 显示分页效果

接下来向ListView控件添加排序功能。

(15)在Default.aspx文件中,切换到“源”视图。从“工具箱”的“标准”选项卡中,将两个Button控件拖放到LayoutTemplate元素中的table元素之间。在“属性”窗口中,按照以下方式更改按钮的属性:

将第一个按钮的Text属性设置为“按编号排序”,将CommandName属性设置为“Sort”,将CommandArgument设置为“UserName”。

将第二个按钮的Text属性设置为“按姓名排序”,将CommandName属性设置为“Sort”,将CommandArgument设置为“UserID”。

添加完成之后,ListView控件的主要代码如下。

alt

alt

alt

alt

注意

按钮的CommandArgument属性通常设置为排序表达式,对于数据库数据,通常是某个列的名称。


(16)保存该页面,运行测试,当单击“按ID排序”按钮时,如图13-32所示,当单击“按姓名排序”按钮时,可以看到按姓名已经排序,如图13-33所示。

alt

图13-32 按ID排序效果

alt

图13-33 按姓名排序效果

到此,完成了使用LiseView控件对数据进行分页、排序操作,需要读者不断地练习才可以熟练使用LisetView。

教程类别