UrlPaging 设置为 true
为什么每次anpPager.CurrentPageIndex 都是1
private void Page_Load(object sender, System.EventArgs e)
{
BindOrgList(anpPager.CurrentPageIndex,OrderType,IsOnSearch);
}private void anpPager_PageChanged(object sender, EventArgs e)
{
}#region 绑定机构列表
/// <summary>
/// 绑定机构列表
/// </summary>
/// <param name="pageSize">页大小</param>
/// <param name="currrentPage">当前页</param>
/// <param name="orderType">排序类型</param>
/// <param name="isOnSearch">搜索状态</param>
protected void BindOrgList(int currentPage,int orderType,bool isOnSearch)
{
IList list;
int recordCount = 0;
string keyword="";
int searchScope=0;
if(isOnSearch) //如果在搜索状态则调用相应的搜索函数
{
if(Request["k"]!=null)
keyword = Request["k"].ToString();
if (Request["s"]!=null)
if (Request["action"]!=null)
{
lblshowDetail.HRef = "organizations02.aspx?action=search&s=" + Request["s"].ToString() +"&k=" + Request["k"].ToString();
}
searchScope = int.Parse(Request["s"].ToString());
if(searchScope==0)
list = new OrgOrgServices().SearchOrgByNameOrderByViews(anpPager.PageSize,currentPage,out recordCount,keyword);
else if(searchScope==1)
list = new OrgOrgServices().SearchOrgByManageAreaOrderByDate(anpPager.PageSize,currentPage,out recordCount,keyword);
else
list = new OrgOrgServices().SearchOrgByAreaOrderByViews(anpPager.PageSize,currentPage,out recordCount,keyword);
}
else //否则绑定所有课程信息列表
{
if (orderType==0)
{
list = new OrgOrgServices().GetAllOrgOrderByViews(anpPager.PageSize,currentPage,out recordCount);
}
else
{
list = new OrgOrgServices().GetAllOrgOrderByCreateDate(anpPager.PageSize,currentPage,out recordCount);
}
}
rptOrgInfo.DataSource = list;
rptOrgInfo.DataBind();
anpPager.RecordCount = recordCount;
}
#endregion
为什么每次anpPager.CurrentPageIndex 都是1
private void Page_Load(object sender, System.EventArgs e)
{
BindOrgList(anpPager.CurrentPageIndex,OrderType,IsOnSearch);
}private void anpPager_PageChanged(object sender, EventArgs e)
{
}#region 绑定机构列表
/// <summary>
/// 绑定机构列表
/// </summary>
/// <param name="pageSize">页大小</param>
/// <param name="currrentPage">当前页</param>
/// <param name="orderType">排序类型</param>
/// <param name="isOnSearch">搜索状态</param>
protected void BindOrgList(int currentPage,int orderType,bool isOnSearch)
{
IList list;
int recordCount = 0;
string keyword="";
int searchScope=0;
if(isOnSearch) //如果在搜索状态则调用相应的搜索函数
{
if(Request["k"]!=null)
keyword = Request["k"].ToString();
if (Request["s"]!=null)
if (Request["action"]!=null)
{
lblshowDetail.HRef = "organizations02.aspx?action=search&s=" + Request["s"].ToString() +"&k=" + Request["k"].ToString();
}
searchScope = int.Parse(Request["s"].ToString());
if(searchScope==0)
list = new OrgOrgServices().SearchOrgByNameOrderByViews(anpPager.PageSize,currentPage,out recordCount,keyword);
else if(searchScope==1)
list = new OrgOrgServices().SearchOrgByManageAreaOrderByDate(anpPager.PageSize,currentPage,out recordCount,keyword);
else
list = new OrgOrgServices().SearchOrgByAreaOrderByViews(anpPager.PageSize,currentPage,out recordCount,keyword);
}
else //否则绑定所有课程信息列表
{
if (orderType==0)
{
list = new OrgOrgServices().GetAllOrgOrderByViews(anpPager.PageSize,currentPage,out recordCount);
}
else
{
list = new OrgOrgServices().GetAllOrgOrderByCreateDate(anpPager.PageSize,currentPage,out recordCount);
}
}
rptOrgInfo.DataSource = list;
rptOrgInfo.DataBind();
anpPager.RecordCount = recordCount;
}
#endregion
根据经验表明....AspNetPager默认分页从0开始...DataList等默认分页从1开始,
印象里这两个是不统一的,说错表怪
anpPager.CurrentPageIndex 一直是1
改为-
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
} private void Bind()
{
BindOrgList(anpPager.CurrentPageIndex, OrderType, IsOnSearch);
} private void anpPager_PageChanged(object sender, EventArgs e)
{
Bind();
}
1.进入页面时,初始化所有成员 CurrentPageIndex = 0;
2.执行PageLoad方法,获取并显示数据。
3.点击翻页按钮(例如:下一页),执行按钮事件(btnNext_Click)对应的代码(翻页+重新绑定)。CurrentPageIndex += 1; //CurrentPageIndex = 2;
4.点击翻页按钮后页面刷新,初始化所有成员。CurrentPageIndex = 0;
5.执行PageLoad方法,获取并显示数据。CurrentPageIndex = 0;
结果:没有实现翻页效果。
--------------------------
解决方法:要保存上次的页号,可以使用ViewState对象(如:ViewState["pageIndex"])
private void Bind()
{
if(ViewState["pageIndex"] != null)//判断当前页号是否存在
{
//如果存在让控件翻到该页
anpPager.CurrentPageIndex = Convert.ToInt32(ViewState["pageIndex"]);
}
BindOrgList(anpPager.CurrentPageIndex.OrderType,IsOnSearch);
}private void ampPager_PageChanged(object sender,EventArgs e)
{
……
ViewState["pageIndex"] = anpPager.CurrentPageIndex + 1;
……
}