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"));
}
注意:如果出现错误,凡是跟源数据相关的,都是跟程序集相关。可以将引用删除重新加一下。也可以重新配置一下。
特别注意,不要启用动态数据。