Asp.Net WebForm ListView的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lichunlin1994/article/details/53537912

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"));
}



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

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









阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页