彻底解决!无效的 CurrentPageIndex 值.它必须大于等于 0 且小于 PageCount!的问题

在DataGrid的多个分页中,删除末页最后一条记录的时候,经常会出现:

无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。


现在只要把下面这段代码,加到DataGrid的DeleteCommand事件中,就可以彻底解决改异常。
注:[protected System.Web.UI.WebControls.DataGrid dg];

if((dg.CurrentPageIndex==dg.PageCount-1)&&dg.Items.Count==1)
{
   if(dg.CurrentPageIndex-1>1)
   {
   dg.CurrentPageIndex = dg.CurrentPageIndex-1;
   }
   else
   {
   dg.CurrentPageIndex = 0;
   }
            
}
this.open_sql();
dg.DataBind();

抛砖引玉,目的是向大家学习,谢谢!!!
很希望能和大家成为朋友,请大家加我QQ--126083810
解释下列代码Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim TJStr As String = Request.QueryString("serch") Dim Dr As DataSet Dim Sql As String Dim SqlObj As New basesql Dim PDSource As New PagedDataSource If Trim(TJStr) <> "" Then Sql = "select uid,uname,jzarea,('face/'+face) as face,regtime,lastlogin,logintimes,(select count(*) from wpinfo where userid=uid) as hps,(select count(*) from requireinfo where userid=uid) as xqs from userinfo where uname like '%" & Trim(TJStr) & "%' order by hps desc" Else Sql = "select uid,uname,jzarea,('face/'+face) as face,regtime,lastlogin,logintimes,(select count(*) from wpinfo where userid=uid) as hps,(select count(*) from requireinfo where userid=uid) as xqs from userinfo order by hps desc" End If Dr = SqlObj.ExecuteDataSet(Sql) PDSource.DataSource = Dr.Tables(0).DefaultView PDSource.AllowPaging = True PDSource.PageSize = 4 Dim CurrPage As Integer If Request.QueryString("page") <> "" Then CurrPage = CInt(Request.QueryString("page")) Else CurrPage = 1 End If PDSource.CurrentPageIndex = CurrPage - 1 Repeater1.DataSource = PDSource Repeater1.DataBind() SumNum.Text = Dr.Tables(0).Rows.Count CPage.Text = PDSource.CurrentPageIndex + 1 SumPage.Text = PDSource.PageCount fpage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=1" epage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & PDSource.PageCount npage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & CurrPage + 1 ppage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & CurrPage - 1 If PDSource.IsFirstPage Then fpage.Enabled = False ppage.Enabled = False End If If PDSource.IsLastPage Then epage.Enabled = False npage.Enabled = False End If
最新发布
03-14
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值