1
一、配置objectDataSource
---选择业务逻辑层的类
二、配置Select对应的方法,【必须是一个带两个整型参数的方法】,第一个参数表示要查看的第一条记录的前一条。比如我要查看的是第31-40条数据,那么第一个参数就是30。第二个参数每页最多能显示的记录条数pagesize。
这两个参数都是由分页控件DataPager来传递的。无需我们考虑。(再次强调:这两个参数都是DataPager分页控件自动给我们传递的,无需我们考虑。我们仅仅需要设置一下DataPager控件的PageSize属性就可以了,这个属性是定义每页显示多少条数据的。即:页大小)
between 30+1 and 30+1+pagesize
31-35
对于select对应的查询方法中的两个参数,在配置数据源的时候不需要指定。并且删除生成的参数代码。
三、配置ObjectDataSource启用分页:即将EnablePaging属性设置为true (EnablePaging=true)
四、设置objectDataSource的两个属性:
StartRowIndexParameterName="StartRow" 这个属性的的值必须与查询方法中的第一个参数的名字一样。(例如:既然ListView控件要分页显示,那么我们就会调用Bll层中的分页方法,这个参数的值就是分页方法的第一个参数,这个参数表示要查看的第一条记录的前一条)
MaximumRowsPrameterName="PageSize" 这里指定的参数就是select查询方法中的第二个参数(即:页大小,即:每页显示多少条数据)(必须与业务逻辑层中的查询方法的第二个参数名称一致)这个属性的的值必须与查询方法中的第一个参数的名字一样
如下:(注意:这个分页方法,第一个参数一定是要查询第几行的前一行,第二个参数是页大小)
/// <summary>
/// 分页查询
/// </summary>
/// <param name="StartRow">开始行的前一行</param>
/// <param name="PageSize">页大小</param>
/// <returns></returns>
/// 开是行的前一行的意思就是:假如我要查询31-40条数据,那么前一行就是30
public List<UserInfo> PagingPage(int StartRow, int PageSize)
{
GetUserInfoCount();
List<UserInfo> list = new List<UserInfo>();
string sql = "select top " + PageSize + " * from (select ROW_NUMBER() OVER(ORDER BY id) as rowNumber,* from t_userinfo) as A where rowNumber>" + StartRow;
DataTable dt = SqlHelper.ExecuteDataTable(sql, null);
UserInfo u = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
u = new UserInfo();
u.Id = int.Parse(dt.Rows[i][1].ToString());
u.UserName = dt.Rows[i][2].ToString();
u.Name = dt.Rows[i][3].ToString();
u.Age = Convert.ToInt32(dt.Rows[i][4].ToString());
list.Add(u);
}
return list;
}
在给DataSource配置数据源的时候
五、设置ObjectDataSource的SelectCountMethod="GetCount";设置该属性为业务逻辑层的一个方法,这个方法的作用就是查询出当前表中一共有多少条记录:select count(*) from aspx_students
/// <summary>
/// 获取表的总条数
/// </summary>
/// <returns></returns>
public int GetUserInfoCount()
{
string sql = "select count(*) from t_userinfo";
object count = SqlHelper.ExecuteScalar(sql, null);
return Convert.ToInt32(count); ;
}
六、
-----添加一个ListView控件,设置数据源为ObjectDataSource
-----配置ListView,启用“编辑”、“删除”、“插入”,不要启用“分页”
七、
---添加一个DataPager控件。设置该控件的PagedControlID为对应的ListView
---设置该控件的PageSize属性,每页显示多少条。
---为该控件选择一个分页导航的样式。
八,使用DataPager控件为ListView控件分页的时候一定要注释掉(禁用掉)ObjectDataSource源中的以下代码
<%-- <SelectParameters>
<asp:Parameter Name="currentPage" Type="Int32" />
<asp:Parameter Name="pageSize" Type="Int32" />
</SelectParameters>--%>
九:如果删除按钮无效果:那么可能需要设置ListView控件的DataKeyNames属性。这个属性的值就是 ListView控件绑定数据的Model 的主键
例如: