无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount 咋回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataGrid? 试试不判断page_Load里的ispostback. 只这一句看不出什么问题你先跟一下DataGrid,看看pagecount等值吧 是不是在删除的时候出现这个问题.判断一下就行了.if (dataGrid1.CurrentPageIndex == dataGrid1.PageCount -1){ dataGrid1.CurrentPageIndex = dataGrid1.PageCount -1; dataGrid1.DataBind();} 这只是用DATAGRID里的内置分页而已,datagrid.currentindexpage = e.newpageindex;datagrid.bindgrid();load(){ if(!Page.ispostback() { bindgrid(); }}就是这样而已如果不在LOAD里判断,那每次加载速度就慢很多了。 出現這種情況,通常是你選擇了查看第三頁,然後你查詢了一次此次查詢條件獲取的記錄只有兩頁所以執行 this.DataGrid1.DataBind();就報錯解決方法,在執行綁定前,將當前頁復位 this.DataGrid1.CurrentPageIndex =0; this.DataGrid1.DataBind(); private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { this.DataGrid1.CurrentPageIndex = e.NewPageIndex; BindGrid(); } public void BindGrid() { SqlDataAdapter mySqlCom = new SqlDataAdapter("select * from QQMessage",sqlCon); DataSet myds = new DataSet(); mySqlCom.Fill(myds,"QQMessage"); this.DataGrid1.DataSource = myds.Tables["QQMessage"].DefaultView; this.DataGrid1.DataBind(); this.DataGrid1.DataKeyField = "id"; } if(dg.Items.Count%dg.PageSize == 1&&dg.CurrentPageIndex>=1) dg.CurrentPageIndex -= 1; 我也把我的代碼貼出來/// <summary>/// 解決刪除記錄後 DataGrid 分頁溢出的問題/// </summary>/// <param name="dg">DataGrid 控件</param>/// <param name="i">刪除的數目</param>public static void PageOverFlow(DataGrid dg,int i){ if(dg.CurrentPageIndex!=0 && dg.CurrentPageIndex==dg.PageCount-1 && dg.Items.Count==i) { dg.CurrentPageIndex -- ; }} 再用内置分页的时候 ,如果删除该页随后一条记录,应该先做判断:if(this.DataGrid1.Items.Count==1) { if(this.DataGrid1.CurrentPageIndex!=0) { this.DataGrid1.CurrentPageIndex=this.DataGrid1.CurrentPageIndex-1; } } 出現這種情況,通常是你選擇了查看第三頁,然後你查詢了一次此次查詢條件獲取的記錄只有兩頁所以執行 this.DataGrid1.DataBind();就報錯解決方法,在執行綁定前,將當前頁復位 this.DataGrid1.CurrentPageIndex =0; this.DataGrid1.DataBind();完全同意 http://singlepine.cnblogs.com/articles/281425.html this.DataGrid1.DataSource = ds; if((DataGrid1.CurrentPageIndex==DataGrid1.PageCount-1)&&DataGrid1.Items.Count==1) { if(DataGrid1.CurrentPageIndex-1>=1) { DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex-1; } else { DataGrid1.CurrentPageIndex = 0; } } this.DataGrid1.DataBind(); cityhunter172(寒羽枫)的答案正解,巳经测试。感谢 请教,在frame中打开一个新窗口, 求正则表达式 .NET Web开发中,我的本地数据库不可以被远程访问 谁有好的ASP.NET的关于上传文件显示进度条的代码 为什么aspx的网页静置太久,会出现点击链接半天没反应的现象 急!!有用vs.net2005的吗???请帮忙看看我的问题!!! gif图片用Image.GetThumbnailImage(..)缩略后不能动了,变成静态图片了 请给个水晶报表的下载地址 请教一个JS问题,只怪本人才疏学浅。 Help!有关授权的问题! 关于DataGrid模板列触发事件的问题,请进来看看 Page_PreInit()是哪里来的?为什么会执行?
if (dataGrid1.CurrentPageIndex == dataGrid1.PageCount -1)
{
dataGrid1.CurrentPageIndex = dataGrid1.PageCount -1;
dataGrid1.DataBind();
}
datagrid.currentindexpage = e.newpageindex;
datagrid.bindgrid();load()
{
if(!Page.ispostback()
{
bindgrid();
}
}
就是这样而已如果不在LOAD里判断,那每次加载速度就慢很多了。
此次查詢條件獲取的記錄只有兩頁
所以執行 this.DataGrid1.DataBind();就報錯解決方法,在執行綁定前,將當前頁復位
this.DataGrid1.CurrentPageIndex =0;
this.DataGrid1.DataBind();
{
this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
BindGrid();
} public void BindGrid()
{
SqlDataAdapter mySqlCom = new SqlDataAdapter("select * from QQMessage",sqlCon); DataSet myds = new DataSet();
mySqlCom.Fill(myds,"QQMessage"); this.DataGrid1.DataSource = myds.Tables["QQMessage"].DefaultView;
this.DataGrid1.DataBind();
this.DataGrid1.DataKeyField = "id";
}
if(dg.Items.Count%dg.PageSize == 1&&dg.CurrentPageIndex>=1)
dg.CurrentPageIndex -= 1;
/// 解決刪除記錄後 DataGrid 分頁溢出的問題
/// </summary>
/// <param name="dg">DataGrid 控件</param>
/// <param name="i">刪除的數目</param>
public static void PageOverFlow(DataGrid dg,int i)
{
if(dg.CurrentPageIndex!=0 && dg.CurrentPageIndex==dg.PageCount-1 && dg.Items.Count==i)
{
dg.CurrentPageIndex -- ;
}
}
if(this.DataGrid1.Items.Count==1)
{
if(this.DataGrid1.CurrentPageIndex!=0)
{
this.DataGrid1.CurrentPageIndex=this.DataGrid1.CurrentPageIndex-1;
}
}
此次查詢條件獲取的記錄只有兩頁
所以執行 this.DataGrid1.DataBind();就報錯解決方法,在執行綁定前,將當前頁復位
this.DataGrid1.CurrentPageIndex =0;
this.DataGrid1.DataBind();完全同意
{
if(DataGrid1.CurrentPageIndex-1>=1)
{
DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex-1;
}
else
{
DataGrid1.CurrentPageIndex = 0;
}
}
this.DataGrid1.DataBind();