0

私はvb.netから始めています.GridViewでページングが有効になっているSQLクエリからレジスタを表示するGridViewを作成する必要があります. しかし、ページングは​​ページ 1 の最初のレジスターに対してのみ機能します。ページ 2 をクリックすると、本来よりも少ないレジスターが表示され、ページ番号のバーが消えます。

私は同様の問題を抱えている人を見てきました。

 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 を 2 つの可能なクエリで埋めるコードを次に示します。ページングを無効にすると、問題なく動作するため、問題はクエリにはありません。

 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
4

2 に答える 2

0

これらのコード行を削除します

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

指定するだけですGridView.PageSize(もちろん、ページングを許可します)

于 2013-05-10T16:51:25.743 に答える