解决DataList再次绑定数据时出错!

在.NET项目中,初次搜索后翻页再更换条件搜索时,DataList出现'无效的CurrentPageIndex值'异常。原因是二次搜索数据的页数小于当前CurrentPageIndex。解决方案是在重新绑定数据前设置CurrentPageIndex为0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近在做.net项目中,出现了一个问题(这个问题很早就遇到过,但一直没有得解决,也没有深究),这次不得不研究一下到底是哪个地方出现了错误!
  问题描述:在多重条件搜索数据后绑定DataList时,第一次搜索没有任何问题,但是当翻页后(这时CurrentPageIndex  !=0),再次更换条件搜索时就出现如下错误 :
   说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

“/”应用程序中的服务器错误。

 


 

无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。

 经过分析才找到,原来是第二次搜索的数据页数小于目前的CurrentPageIndex 值,解决方法:只需要在第二次绑定数据之前把CurrentPageIndex =0即可解决问题了。

//根据SQL查询语句得到符合搜索条件的用户
        private void DataGridBind(string strSQL)
        
{
            factory 
= ProviderFactory.Create();
            DataSet ds 
= new DataSet();
            
using(IDbConnection connection = factory.CreateConnection())
            
{
                connection.Open();
              
                DBAccessHelper.FillDataSet(factory,connection,strSQL,ds,
new string[] {"CS_Supply_Require"});

            }

            
this.dgList.DataSource = ds.Tables[0];
            
if((ds.Tables[0].Rows.Count + this.dgList.PageSize - 1)/this.dgList.PageSize < this.dgList.CurrentPageIndex + 1)
            
{
                
this.dgList.CurrentPageIndex = 0;
            }

            
this.dgList.DataBind();
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值