J'ai un gridview qui est databound dans le code-behind en utilisant une procédure stockée. Je gère également l'événement Paging dans le code, mais chaque fois que je clique sur un numéro de page, je continue d'obtenir le modèle de données vide au lieu de plus de lignes. Aucune suggestion?Problème de pagination ASP.NET Gridview
EDIT: Je lie de nouveau la source de données du gv après avoir modifié l'index de la page.
Voici mon code - j'ai une liste déroulante qui détermine la source de données est:
Protected Sub ddlProjectForm_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlProjectForm.SelectedIndexChanged
Dim strProjectFormID As String = Me.ddlProjectForm.SelectedValue
Dim conn As New SqlConnection(WebConfigurationManager.ConnectionStrings("Conn").ConnectionString)
Dim cmd As New SqlCommand()
Dim da As New SqlDataAdapter
Dim ds As New DataSet
If strProjectFormID <> "Select" Then
Try
Using conn
conn.Open()
With cmd
.Connection = conn
.CommandType = CommandType.StoredProcedure
.CommandText = "sp_GetAllFormData"
.Parameters.AddWithValue("@projectFormID", strProjectFormID)
End With
da.SelectCommand = cmd
da.Fill(ds)
Me.gvAllSentData.DataSource = ds.Tables(0)
Me.gvAllSentData.DataBind()
Me.gvAllSentData.Visible = True
End Using
Catch sqlEx As SqlException
Dim newError As New ErrorLogger(Me.Page.Title, sqlEx.Message, Session("UserName"))
newError.LogError()
Trace.Write(sqlEx.Message)
Me.lblBadFeedback.Visible = True
Me.lblBadFeedback.Text = "We're sorry - an error has occurred. It has been logged and will be reviewed by the site admin."
Catch ex As Exception
Dim newError As New ErrorLogger(Me.Page.Title, ex.Message, Session("UserName"))
newError.LogError()
Trace.Write(ex.Message)
Me.lblBadFeedback.Visible = True
Me.lblBadFeedback.Text = "We're sorry - an error has occurred. It has been logged and will be reviewed by the site admin."
End Try
Else
Me.gvAllSentData.DataSource = Nothing
Me.gvAllSentData.Visible = False
End If
End Sub
Protected Sub gvAllSentData_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvAllSentData.PageIndexChanging
Me.gvAllSentData.PageIndex = e.NewPageIndex
Me.gvAllSentData.DataBind()
End Sub
Oui, je lie après avoir défini le nouvel index de page. – Brian
Hmm, pouvez-vous éditer votre question initiale et y poster votre code? –