2013-05-10 142 views
0

我開始在vb.net上,我必須做一個GridView,它顯示從GridView上啓用分頁的sql查詢中的寄存器。但是分頁只適用於頁面1中的第一個寄存器,當我點擊頁面2時,它顯示的寄存器比它應該少,並且頁面數字的條形消失。GridView分頁不能按預期工作

我已經看到了類似的問題的人,所有這一切說的是把:

Protected Sub GridView2_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView2.PageIndexChanging 
    GridView2.PageIndex = e.NewPageIndex 
    GridView2.DataBind() 
End Sub 

但它似乎沒有工作。

下面是用兩個可能的查詢填充GridView的代碼。如果我禁用分頁,他們的工作只是罰款,所以這個問題是不是就查詢:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 


    Dim command As String 
    command = "SELECT [GVA14]. [COD_CLIENT] As Codigo, [GVA14].[RAZON_SOCI] As Nombre,tabla.[periodo] As Cuota FROM [GVA14] LEFT JOIN (SELECT cod_client as cod_client ,MAX(periodo) as periodo FROM emCuotas GROUP BY cod_client) As tabla ON ([GVA14]. [COD_CLIENT] COLLATE DATABASE_DEFAULT=tabla.[cod_client] COLLATE DATABASE_DEFAULT) ORDER BY [GVA14].[COD_CLIENT]" 
    Dim dTable As New DataTable 
    Dim dataAdapter = New OleDbDataAdapter(command, con) 

    dataAdapter.Fill(dTable) 
    GridView2.DataSource = dTable 
    GridView2.DataBind() 
    nro = 1 

End Sub 

Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click 
    Dim f1 As String 
    f1 = TextBox1.Text 
    Dim f2 As String 
    f2 = TextBox2.Text 
    Dim command As String 
    Dim cuantos As Integer = 50 
    Dim inicio As Integer=0 
    command = "SELECT COD_CLIENT,RAZON_SOCI,FECHA_ALTA FROM GVA14 WHERE FECHA_ALTA BETWEEN CONVERT(datetime,'" & f1 & "',103) AND CONVERT(datetime,'" & f2 & "',103) Order By COD_CLIENT,FECHA_ALTA" 
    Dim dTable As New DataTable 
    Dim dataAdapter = New OleDbDataAdapter(command, con) 
    dataAdapter.Fill(dTable) 
    GridView2.DataSource = dTable 
    GridView2.DataBind() 
    command = "SELECT Count(FECHA_ALTA) FROM GVA14 WHERE FECHA_ALTA BETWEEN CONVERT(datetime,'" & f1 & "',103) AND CONVERT(datetime,'" & f2 & "',103)" 
    Dim comand As New Data.OleDb.OleDbCommand(command, con) 

    Label1.Text = comand.ExecuteScalar 
    nro=2 

End Sub 

回答

0

這裏是我做過什麼......

Protected Sub gvExistingICByUser_PageIndexChanging(sender As Object, e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvExistingICByUser.PageIndexChanging 
     Dim grid As GridView = DirectCast(sender, GridView) 
     GetExistingICByUser(CurrentUser) 
     grid.DataSource = dtExistingICByUser 
     grid.PageIndex = e.NewPageIndex 
     grid.DataBind() 
    End Sub 

線擊穿PageIndexChanging內事件....
1)投你的gridview作爲grideview。 (我不知道確切Ÿ它這樣做的方式,但它的工作瓦特/它,而不是W/O)

2)裝入網格視圖(我在返回的數據表中的另一功能這樣做)

3)設置綁定

+0

非常感謝,它現在有效。 – 2013-05-15 18:17:34

+0

沒問題!如果你可以標記爲回答!謝謝! – jharris8567 2013-05-15 21:34:08

0

刪除這些代碼行

GridView2.PageIndex = e.NewPageIndex 
GridView2.DataBind() 

僅僅指定GridView.PageSize(並允許分頁,當然)

+0

做了,並且它也不管用頁面索引

4),它只是顯示第一頁,索引並沒有改變。 – 2013-05-10 16:54:31