Asp.Net WebForm ListView的使用

本文详细介绍了使用ASP.NET中ListView控件进行高效分页的方法,包括配置数据源、选择业务对象及方法、自定义ListView布局等步骤,并提供了一个具体的分页查询实现案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


ListView的搭建步骤:

1.将各个层搭建好,然后添加好引用,最后写好方法。

2.拖ListView控件,然后切换到设计视图。

3.在对象数据源,就是右箭头图标,点击一下。会弹出一个框叫ListView任务。

3.1 选择数据源——新建数据源——对象——下一步


4.配置数据源:

4.1.选择业务对象:例如:BLL.Users,然后下一步。

4.2.定义数据方法:选择相关的方法。例如查询方法,选择GetList()方法。注意,查询 选择用返回值为List集合

的,其他用参数为实体对象的。——完成


然后又回到设计页面,再次点击右上角的三角形图标——配置ListView——

5.选择数据源:有默认的ObjectDataSource1,选择它。

6.配置ListView窗口:

6.配置ListView的布局、样式、选项:

6.1.布局:网格。

6.2.选择样式:蓝调。

6.3.选项:启用所有。注意:不要启用动态数据。在下面的下拉框选择数字页导航。【特别注意,不要选择[启动动态数据]】

6.4.也可以自定义,具体如下:

6.4.1 在前台页面.aspx页面的<asp:ListView>标签里面,打开<LayoutTemplate>标签(模板)。

6.4.2 在第二个<tr>标签里面,就是页面条,可以手动修改文字。

6.4.3 修改样式:<asp:NumericPagerField />

6.4.4 设置每页显示的行数:在<asp:DataPager PageSize="10" ID="DataPager2" runat="server">,表示每页显示10行。

6.4.5 设置是否显示一些按钮:

第一页和最后一页:ShowLastPageButton="true"

显示页码:<asp:NumericPagerField />

上一页:ShowPreviousPageButton="true"

下一页:ShowNextPageButton="true"

FirstPageText="首页"

LastPageText="末页"

6.4 可以复制这段代码替换源代码:

<asp:DataPager PagedControlID="ListView1" PageSize="3" ID="DataPager1" runat="server">
	<Fields>
		<asp:NextPreviousPagerField ButtonType="Button"  FirstPageText="首页"
			ShowFirstPageButton="True" ShowLastPageButton="false"  ShowNextPageButton="false" />

		<asp:NumericPagerField  ButtonType="Button" />
						
		<asp:NextPreviousPagerField ButtonType="Button" LastPageText="末页" 
			ShowFirstPageButton="false" ShowPreviousPageButton="false" ShowLastPageButton="true"  ShowNextPageButton="true" />
	</Fields>
这种方法只适合数据少的时候,因为查数据的时候,是把数据全部查出来,加载到服务器内存,这样服务器负担很重。





用另外一种方法解决:

一、在<asp:ObjectDataSource>标签里面添加如下:

1.EnablePaging="true" 启用分页 查询的意思。

2.SelectMethod="GetList" 启用分页查询的方法。 

3.MaximumRowsParameterName="pageSize" 页容量(一页显示几行)。

4.StatrRowIndexParameterName="startRowIndex" 起始页的下标(比如每页3行,第2页就传4)。

5.SelectCountMethod="GetRowCount" 获取总行数方法。


二、在BLL层添加:

1.在BLL层把这两个参数传入GetList()方法。为:GetList(int pageSize,int startRowIndex)。

例子://           5   10

public IList<LeaveWordBorad.MODEL.Users> GetList(int pageSize,int startRowIndex)
{
	string strSql = "select * from (select *,Row_Number() over(order by uid) rownum FROM Users) t where t.rownum>" + startRowIndex + " and t.rownum<=" + (startRowIndex + pageSize);
	DataTable dt = DbHelperSQL.GetDataTable(strSql);
	IList<MODEL.Users> list = Table2List(dt);
	return list;
}//所谓高效分页



2.添加获取总行数方法

public int GetRowCount();

例子:

public int GetRowCount()
{
	return Convert.ToInt32(DbHelperSQL.ExcuteScalar("select count(*) from users"));
}



注意:如果出现错误,凡是跟源数据相关的,都是跟程序集相关。可以将引用删除重新加一下。也可以重新配置一下。

特别注意,不要启用动态数据。









尝试着写web下的listview控件listview一般有四种显示模式——平铺、图标、列表和详细信息。这些显示模式唯一的共同点就是数据是相同的,显示效果完全不一样。这时候xml的优势就完全体现出来了。 第一步,就是建立一个自定义格式的xml,用来保存listview数据 第二步,xsl可以解析xml生成html,所以就针对listview的每一种显示效果设计了一个对应的xsl。这样前面定义的xml数据和不同的xsl一起就可以显示出不同的效果。 第三步,htc在开发web控件时,非常灵活和功能强大,可以采用客户端脚本如js,可以对控件进行封装,使之有自己的属性、方法和事件等。利用htc封装的listview控件中对外有两个属性CfgXMLSrc(配置文件,设置listview的每一种显示模式对应的xsl文件路径等信息)和View(listview的显示模式),在htc中根据listview的View属性来选择不同的xsl文件和xml数据文件生成html,并输出。 这样就可以通过改变listview控件的view属性来切换listview的不同显示效果。 在线演示 打包下载 以前写换皮肤的控件,都是通过更换css和图片路径来做的(可以看看http://www.stedy.com),局限性很大,例如toolbar,在winxp和win2000下差别很大,只靠通过换css和图片路径无法应付这种情况。通过开发listview的经验,从中悟到了一种更好的开发换皮肤的web控件的模式: 首先将控件的相关数据用xml描述出来,对于每一种Theme(皮肤/主题样式),有一个相关的配置文件,配置文件中记载了该控件所用到的xsl、css、图片路径、htc等信息。在控件相关的htc中,根据Theme属性组合这些。从而可以灵活的应付各种情况。 例如刚才说的toolbar,假如入我们有三种风格:winxp蓝色、winxp银色和windows经典,前面两种基本差不多,只是样式和图片不一样,而后面一种和前面的两种差别比较大。那么我们需要写两个xsl,三个css文件,三个图片文件夹,组合一下就可以生成这三种风格的toolbar了。 这种控件开发模式会慢慢流行起来并在asp.net控件中发挥重要作用的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值