2011-05-11 3 views
0

페이징을 사용할 수있는 페이지 (정렬을 사용하지 않고 사용하지 않음)에 GridView가 있습니다. OnRowDataBound 및 OnPageIndexChanged 이벤트가 할당됩니다..NET Gridview 페이징은 다음 페이지에 다른 내용을 표시합니다.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:my_connectionstring %>"></asp:SqlDataSource> 

OnRowDataBound이 포맷 방식으로 컨텐츠를 표시하는 데 사용됩니다 :

<asp:GridView ShowHeader="False" ID="GV1" runat="server" AutoGenerateColumns="False" OnRowDataBound="gridView_RowDataBound" DataSourceID="SqlDataSource1" GridLines="None" CellPadding="0" PageSize="25" AllowPaging="True" OnPageIndexChanging="GV1_PageIndexChanging"> 

데이터 소스는 다음과 같이 단지 gridview에 아래에 할당됩니다. 나는 어떤 문제를 일으키는 생각하지 않는다 다음과 같이

Protected Sub gridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)..... 

PageIndexChanging가 정의 :를 Page_Load 부분에서

Protected Sub GV1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) 
    GV1.PageIndex = e.NewPageIndex 
    GV1.DataBind() 
End Sub 

는 여기에 내가 데이터 소스를 채우는 방법입니다. 그것은 문자열 tempSqlStr으로 구성 지정 쿼리에서의 :

SqlDataSource1.SelectCommand = tempSqlStr 
If Not Page.IsPostBack Then 
    GV1.DataBind() 
End If 

모든 것이 작동하는 것 같군, 나는 25 개 기록으로 페이지 된 결과, 나는 페이지를 이동할 수 있습니다 얻을. 그러나 내가 인식 한 것은 내가 페이지 사이를 이동하면서 페이지의 내용이 변화하고 있다는 것입니다. 레코드의 양은 변경되지 않지만 첫 페이지로 다시 한 번 보았을 때 첫 페이지로 다시 보았을 때 두 번째 페이지의 두 번째 페이지 내용으로 다시 이동하고 다른 레코드 집합을 볼 수 있습니다.

모든 페이지에 tempSqlStr 값이 인쇄되었으므로 모든 페이지에서 동일합니다 ("not page.ispostback"부분에는 없습니다).

Page_Load 섹션에 tempSqlStr을 구성하고 GV1_PageIndex_Changing이 값을 볼 수 없기 때문에 발생할 수 있습니까? 이 경우 다음 페이지에 기록이 표시되는 이유는 무엇입니까?

모든 의견을 환영합니다. 고맙습니다.

+0

문제는 반환 된 결과를 주문하지 않았을 가능성이 높습니다. select 문을 5 번 실행하고 결과가 같고 이것이 맞는지 확인하십시오. 그런 다음 쿼리에 주문을 추가하십시오. 이게 당신의 문제를 해결하면 우리가 더 이상 볼 수 있는지 알려주십시오 ... –

+0

정확 하 게! 고마워요! 사실 나는 쿼리에서 ORDER BY를 가졌지 만 최저 순위는 날짜 유형이며 쿼리가 실행될 때마다 같은 날짜의 레코드가 다른 순서로 정렬 된 것처럼 보입니다. ORDER BY 절에 테이블 ID를 추가하고 쿼리가 실행될 때마다 결과에 따라 동일한 순서를 제공합니다. –

답변

0

문제는 반환 된 결과를 주문하지 않았을 가능성이 큽니다. 그 이유는 무엇입니까? select 문을 5 번 실행하고 결과가 같고 이것이 맞는지 확인하십시오. 그런 다음 쿼리에 주문을 추가하십시오. 이게 당신의 문제를 해결할 수 있다면 알려주세요. 그렇지 않으면 우리는 더 이상 볼 수 있습니다 ...

관련 문제