2009-03-20 3 views
3

페이징이 활성화 된 DataGrid가 있습니다. 필터링 조건에 따라 DataGrid에 결과를 표시합니다. 데이터를 필터링했는데 이제는 2 페이지가 있습니다. 2 번째 페이지로 갈 때. 나는 결과를 좁히기 위해 seacrhing 함수를 다시 한 번하고 있습니다. 그런 다음 "잘못된 CurrentPageIndex 값과 같은 오류가 발생합니다.> = 0이고 < PageCount + DataGrid 페이징"두 번째 검색이 이전 페이지보다 적은 수의 페이지를 생성 할 것이라고 확신합니다. 문제를 해결하는 방법? 미리 감사드립니다.Datagrid Paging : 잘못된 CurrentPageIndex 값입니다. 그것은> = 0이어야합니다.

답변

5

특정 변경을 수행하면 1 페이지로 재설정해야합니다. 변경 사항 필터링이 포함됩니다. 꽤 많이, 그리드에 사용할 수있는 행의 수를 변경할 때마다 1 페이지로 돌아갑니다.

0

또 다른 제안은 PageCount가 변경되었을 때만 CurrentPageIndex를 재설정하고 HttpException을 발생시키는 것입니다. 코드 조각은 Les Smith의 example을 기반으로합니다.

Try 
     dataGrid1.DataBind() 
    Catch 
     ' We possibly don't have the correct PageCount. 
     dataGrid1.CurrentPageIndex = 0 
     dataGrid1.DataBind() 
    End Try 
1

페이징이 활성화 된 DataGrid가 있습니다. 필터링 조건에 따라 DataGrid에 결과를 표시합니다. 데이터를 필터링했는데 이제는 2 페이지가 있습니다. 두 번째 페이지로 이동하면 결과를 좁히기 위해 다시 한 번 검색 기능을 수행하고 있습니다. 그럼 난

같은 오류를 얻고있다 "잘못된 CurrentPageIndex 값입니다. 그것은해야합니다> = 0 < PAGECOUNT + 데이터 그리드 페이징"나는 두 번째 검색은 덜 생산 것이라고 확신

을 이전 페이지 수보다 많은 페이지 수. 이 문제를 해결하는 방법? 오류 표시 :

CurrentPageIndex 값 0보다 커야하고 PageCount는 <이어야합니다.

가 나는 문제를

protected void btnSearchLibrary_Click(object sender, EventArgs e) 
{ 
    if(!String.IsNullOrEmpty(txtSearchLibraryNo.Text.Trim())) 
    oBookReceiptDTO.LibraryCardNo = txtSearchLibraryNo.Text.Trim(); 
    gvBooksReceiptList.CurrentPageIndex = 0; 
    FillGridViewBookReceiptList(oBookReceiptDTO); 
} 

참고 해결 : gvBooksReceiptList.CurrentPageIndex = 0;이 나는 ​​문제를 해결하는 데 사용되는 라인입니다.

0

첫 페이지로 이동하거나 예외를 잡아 원하는 페이지로 이동할 수 있습니다. 마지막 페이지에서 하나의 레코드를 삭제하는 경우 이전 페이지로 이동할 수 있습니다. 내 경우를 들어

try 
    { 
     grid.DataSource = dao.PopulateGrid(); 
     grid.DataBind(); 
    } 
    catch 
    { 
    if (grid.CurrentPageIndex >= grid.PageCount) 
     { 
     grid.CurrentPageIndex -= 1; 
     grid.DataSource = dao.PopulateGrid(); 
     grid.DataBind(); 
     } 
    } 
0

는, 내가 한 일은 항상 현재 페이지 인덱스에게 데이터 그리드 컨트롤에로드되는 데이터의 변경이있을 때마다 재설정 라인을 적용하는 것입니다.

DataGrid.CurrentPageIndex = 0

DataGrid.DataSource = 데이터 테이블/데이터 세트

DataGrid.DataBind()

는 예외가 발생하는 모든 시간이 없기 때문이다 데이터 소스를 데이터 격자에 바인딩 할 때 페이지 수가 일치하지 않을 수 있습니다.