Repeater a partir d'un tableau dynamique [Résolu]

Signaler
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008
-
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008
-
Bonjour,

J'aimerai faire afficher le contenu de mon tableau dynamique à double dimensions (n lignes et 2 colonnes) en utilisant un repeater.
Est-ce possible ?
Comment fait-on ? je débute en asp.net et je n'ai pas reussi a lié ma variable avec mon repeater.

Merci

8 réponses

Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008

j'ai reussi ;)

voici mon code :

Subajout()

If IsPostBack Then

  
myDataRow = Session("tableau"
).Tables(0).NewRow()
myDataRow(1) = TextBox11.Text
'valeur
myDataRow(2) = TextBox12.Text
'description
myDataSet.Tables(0).Rows.Add(myDataRow)
Session(
"tableau") = myDataSet

GridView1.DataSource = Session("tableau")
GridView1.DataBind()

End If

myDataRow = myDataTable.NewRow()
myDataRow(1) = TextBox11.Text
'valeur
myDataRow(2) = TextBox12.Text
'description
myDataTable.Rows.Add(myDataRow)
Session(
"tableau") = myDataSet

GridView1.DataSource = Session(
"tableau")
GridView1.DataBind()

End
Sub
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Bonjour,

je te conseil d'utiliser un gridview qui est le controle fait pour afficher des données tabulaire. Pour cela il suffit de renseigner la propriété datasource du gridview puis utiliser la méthode databind()

<hr />Cyril - MVS - MCP
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008

je te remercie
j'ai  changé mon tableau dynamique en dataset ce qui m'a permis de l'intégrer plus facilement avec le gridview.

j'ai maintenant un petit soucis avec la portée du dataset, lorsque ma page se recharge, il se réinitialise. Pour le garder en mémoire, j'ai donc pensé a l'intégré dans une séssion mais j'ai quelques difficultées. J'arrive bien à enregistrer le dataset dans la variable de session, à récuperer ma table après un rechargement mais je ne peut plus de modifier. As-tu une idée ?

merci
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
le modifier ? as tu une explication un peu plus précise sur le problème ? car c'est pas très clair la :)

<hr />Cyril - MVS - MCP
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008

En fait, une fois la page rechargée et que le gridview s'est rechargé à l'aide du dataset contenu dans la variable de session, je n'arrive plus a ajouter de lignes au dataset.

A partir du moment ou je met  myDataSet = Session(
"tableau") je ne peux plus ajouter de lignes a mon dataset avec le code suivant :

myDataRow = myDataTable.NewRow()
myDataRow(1) = TextBox11.Text

myDataRow(2) = TextBox12.Text

myDataTable.Rows.Add(myDataRow)

je ne comprend pas car ces quatres lignes fonctionnent bien si je ne met pas les sessions mais je en peux enregistrer qu'une ligne car la page se recharge a chaque enregistrement et efface le dataset. Mon but est d'enregistrer plusieurs lignes.

merci
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Bonjour,

as tu essayé de mettre une variable "simple" pour savoir si les sessions fonctionnent correctement dans ton code ? si oui, je suis interessé par voir un peu plus de code car la tout me parait correcte.

<hr />Cyril - MVS - MCP
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2008

Voici ma procédure qui fonctionne et qui affiche une ligne :









Sub
ajout()


myDataRow = myDataTable.NewRow()
myDataRow(1) = TextBox11.Text

'valeur

myDataRow(2) = TextBox12.Text

'description

myDataTable.Rows.Add(myDataRow)
Session(

"tableau"
) = myDataSet


GridView1.DataSource = Session(

"tableau"
)
GridView1.DataBind()


End



Sub

La session fonctionne puisque mon gridview affiche bien les valeurs

Voici donc la procédure qui ne fonctionne pas, avec celle là, aucunes lignes s'affichent, le gridwiew est vide.





Sub
ajout()


'Récupération des enregistrement précédant


If IsPostBack Then




   myDataSet = Session("tableau")




End If




'Ajout d'un nouvel enregistrement

myDataRow = myDataTable.NewRow()
myDataRow(1) = TextBox11.Text

'valeur

myDataRow(2) = TextBox12.Text

'description

myDataTable.Rows.Add(myDataRow)
Session(

"tableau"
) = myDataSet


GridView1.DataSource = Session(

"tableau"
)
GridView1.DataBind()




End



Sub





j'y comprend rien moi non plus ;)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Pas besoin de remettre ton instance de dataset dans la session puisque celle ci est partagé donc tu modifies directement la variable. Le truc que je comprend pas, c'est que tu rajoutes une ligne à myDataTable, myDataTable fais bien partie de ton dataset ? si tu bind directement ton gridview avec ton dataset plutot que la session les nouvelles lignes ajoutés sont bien présente ? car la j'ai l'impression que tu ne rajotues pas les lignes dans ton dataset ... t'as mis un point d'arret et ca passe bien dedans ?  

<hr />Cyril - MVS - MCP