[VS2005] GridView et pagination [Résolu]

cs_dadou74 12 Messages postés mercredi 9 août 2006Date d'inscription 27 avril 2007 Dernière intervention - 25 sept. 2006 à 17:28 - Dernière réponse : vhj 5 Messages postés jeudi 13 juin 2002Date d'inscription 17 novembre 2009 Dernière intervention
- 16 avril 2008 à 16:37
Bonjour,

je charge une GridView par l'intermédiaire d'un DataReader lui même chargé par une procédure stockée Oracle ou Sql en fonction de la connexion de mon utilisateur.




Dim PreFixe As String = Outils.getPrefixe
Dim DB As SesameDatabase = Outils.getDB
Dim societe As Societe = Outils.getSociete
Dim cmd As DbCommand
If societe.IsOracleBdd Then
    Dim paramOut(,) As Object = {{"IO_CURSOR", OracleType.Cursor}}
    cmd = DB.GetStoredProcCommand(PreFixe & "PS_ACTIONS", paramOut)
Else
    cmd = DB.GetStoredProcCommand(PreFixe & "PS_ACTIONS")
End If
Using dataReader As IDataReader = DB.ExecuteReader(cmd)
    GridView1.Visible = True
    GridView1.DataSource = dataReader
    GridView1.DataBind()
End Using

Je souhaite avoir la propriété AllowPaging à True étant donné que j'ai beaucoup de données.
Mais lors du databind il me met l'erreur suivante :




La source de données ne prend pas en charge la pagination des données côté serveur
.
Évidemment cette erreur disparaît lorsque je mets AllowPaging = False
Merci de votre aide.<!-- / message -->
Afficher la suite 

2 réponses

Répondre au sujet
cs_dadou74 12 Messages postés mercredi 9 août 2006Date d'inscription 27 avril 2007 Dernière intervention - 27 sept. 2006 à 11:04
+1
Utile
J'ai réussi en m'en sortir en utilisant un dataset à la place de mon datareader

_dataset = DB.ExecuteDataset(CommandType.Text, "SELECT ID_ACTION, CODE_ACTION, DESI_ACTION, VISE FROM " & PreFixe & "ACTIONS ORDER BY CODE_ACTION")
GridView1.Visible = True
GridView1.DataSource = _dataset
GridView1.DataBind()

et surtout en codant la méthode PageIndexChanging

GridView1.PageIndex = e.NewPageIndex
GridView1.DataSource = _dataset
GridView1.DataBind()
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_dadou74
vhj 5 Messages postés jeudi 13 juin 2002Date d'inscription 17 novembre 2009 Dernière intervention - 16 avril 2008 à 16:37
0
Utile
Bonjour,


Voici mon bout de code



Dim



SQL

As



String






Dim
SQL1

As



String

SQL =




"SELECT "

SQL &=




" NocS"



'0

SQL &=




" FROM MaTable"

SQL &=




" ORDER BY NocS"






Dim
cn

As



New
Data.SqlClient.SqlConnection(CsC(4))cn.Open()


Dim
cmd

As



New
Data.SqlClient.SqlCommand(SQL, cn)


Dim
dr

As
Data.SqlClient.SqlDataReader = cmd.ExecuteReader()


With
GridView1.DataSource = dr

.DataBind()


End



With 

 

 



dr.Close()


CN.Close()


SQL1 =




"SELECT "

SQL1 &=




" NocS"



'0

SQL1 &=




",Descr"



'1

SQL1 &=




" FROM MaTable"

SQL1 &=




" ORDER BY NocS"






Dim
cn1

As



New
Data.SqlClient.SqlConnection(CsC(4))cn1.Open()


Dim
cmd1

As



New
Data.SqlClient.SqlCommand(SQL1, cn1)


Dim
dr1

As
Data.SqlClient.SqlDataReader = cmd1.ExecuteReader()


With
GridView1


Dim
a = 0


Do



While
dr1.Read.Rows.Item(a).Cells(1).Text = a

.Rows.Item(a).Cells(2).Text = dr1(1)

a = a + 1


Loop






End



With

dr1.Close()


cn1.Close()

Ce bout de code fonctionne bien, je souhaiterais maintenant pouvoir bénéficier de la pagination
sur le Gridview. En mettant l'option AllowPaging = true évidemment le databind ne fonctionne pas
et je reçois le message d'erreur suivant:

"La source de données ne prend pas en charge la pagination des données côté serveur."

Alors voic ma question:

Est-ce que quelqu'un peut me dire comment mon code devrait être écrit pour que je puisse paginer
mon Gridview ?

Merci d'avance
Commenter la réponse de vhj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.