程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 無效的 CurrentPageIndex 值。它必須大於等於 0 且小於 PageCount

無效的 CurrentPageIndex 值。它必須大於等於 0 且小於 PageCount

編輯:.NET實例教程
無效的 CurrentPageIndex 值。它必須大於等於 0 且小於 PageCount。
(轉)前些日子在公司的一個項目中,要用到DataGrid自帶的刪除功能,並且實現分頁,原以為很簡單的,但卻偏偏困擾了我們組的所有人!每當刪除一條記錄後要退回到前一頁時,便出現了“無效的 CurrentPageIndex 值。它必須大於等於 0 且小於 PageCount。”錯誤。單步調試並跟蹤進去,方才發現,問題出在了DataGrid.DataBind();的時候。我調了一下DataBind()之前的DataGrid數據源狀態,發現DataGrid.CurrentPageIndex還是刪除前的,這是出錯的主要原因!針對這個錯誤,可以有如下的解決方案:

思路:
        當刪除數據庫中數據並在數據綁定之前,判斷是否需要翻頁,以糾正CurrentPageIndex的錯誤。

實現:
        在DataGrid_Delete方法中,添加如下代碼:
       
        //正常刪除數據庫中的數據
        。。。。。。
        
        //判斷
        if( DataGrid1.Items.Count == 1 && DataGrid1.CurrentPageIndex > 0 )
        {
                DataGrid1.CurrentPageIndex--;
        }
        
        //重新綁定數據
        BindGrid();

情況二(變種):
        可能我們沒有使用DataGrid內建的刪除方式,可能通過CheckBox使得每次可以刪除多條記錄。

思路:
        其實思路差不多,只不過要獲取一次一共刪除多少記錄,並保存於一個變量中,然後將DataGrid1.Items.Count和其比較,正如上面的“DataGrid1.Items.Count == 1”,這樣就能判斷是否需要翻頁了。

實現:
        //獲取刪除記錄的總數
        int count = 0;
        foreach( DataGridItem item in DataGrid1.Items )
        {
        &nb
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved