[résolu]DropDownList: récupération données

DropDownList: récupération données [résolu] - C#/.NET managed - Programmation

Marsh Posté le 11-06-2004 à 09:33:34    

Bonjour,
 
J'ai un souci avec une DropDownList, je n'arrive pas à récupérer la donnée cliquée...
En fait, je travaille en vb.net, je vous mets plus bas l'erreur générer et le boud de code qui va avec.
 
 

Code :
  1. Protected WithEvents ListeChoixType As System.Web.UI.WebControls.DropDownList
  2. Dim type As String
  3. type = ListeChoixType.SelectedItem.Value()


 
et l'erreur est la suivante :
 
Object reference not set to an instance of an object.
 
 
 
 
Merci pour votre aide.
Aurore.


Message édité par ohr le 19-07-2004 à 09:32:50
Reply

Marsh Posté le 11-06-2004 à 09:33:34   

Reply

Marsh Posté le 15-06-2004 à 09:06:45    

S'il vous plait, est-ce quelqu'un saurait pourquoi je n'arrive pas à récupérer la valeur de ma drowDownList?
En fait, je suis vraiment bloquée  :-(

Reply

Marsh Posté le 15-06-2004 à 09:51:16    

Peut être que si tu instanciais ton objet DropDownList, comme te le suggère le message d'erreur, ça marcherait mieux ? :o


Message édité par Harkonnen le 15-06-2004 à 09:52:20

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-06-2004 à 09:47:48    

Ma DropDownList a été instancié juste avant que je clique sur un bouton...
C'est ce que j'ai vérifié en premier, mais il est vrai qu'une fois que j'ai cliqué sur mon bouton, je perds mes données, mais je ne peux pas utiliser un viewstate pour une DropDownList

Reply

Marsh Posté le 16-06-2004 à 10:24:08    

Tu l'as instancié à quel endroit ? Si ça se trouve, c'est une variable locale à une méthode, que tu perds à la fin de la méthode.
Le DropDownList est une variable membre de ta classe ? Si c'est le cas, je te recommande de l'instancier dans le constructeur.  
Mais poste plus de code, on est dans le flou là..


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-06-2004 à 11:28:04    

ok, voilà mon code :
Sachant que ma DropDownList est une variable globale de ma classe.
 

Code :
  1. Protected WithEvents ListeChoixType As System.Web.UI.WebControls.DropDownList
  2. Public Sub chargerDropDownListFS()
  3.         Dim strSelect As String = "select * from SPECIF"
  4.         Dim row As System.Data.DataRow
  5.         Dim cpt As Integer = 1
  6.         bibli.OuvrirTable("SPECIF.mdb", "erreur", Bibliotheque.typeDonnees.Access)
  7.         bibli.SelectionnerVide(strSelect, "SPECIF" )
  8.         bibli.FermerTable("erreur" )
  9.         For Each row In bibli.dsDataset.Tables("SPECIF" ).Rows
  10.             DropDownListFS.Items.Add(row.Item("LIBELLE" ))
  11.             DropDownListFS.Items(cpt).FromString(row.Item("LIBELLE" ))
  12.             cpt = cpt + 1
  13.         Next row
  14.     End Sub
  15. bibli.ChoixFS = DropDownListFS.SelectedItem.Value


 
La fonction chargerDropDownListFS() me sert à remplir ma liste.
Mais comme elle est globale à ma classe, je pensais en cliquant sur un bouton, je ne perdrais pas ces données.
 
bibli étant une classe bibliothèque qui fonctionne très bien, et ChoixFS est un attribut String de 'bibli'.
 
Mais lors de l'exécution de cette instruction, j'ai mon erreur qui apparait.
 
Sachant qu'entre l'exécution de ma fonction et l'exécution de cette instruction, je ne fais que cliquer sur un bouton.

Reply

Marsh Posté le 18-06-2004 à 22:13:53    

Le probleme viens du fait que tu demande Value alors que SelectedItem est null au moment de ta demande. Ceci est surement du au fait que tu recharge ta dropdownlist a chaque chargement de la page ce qui te perd l'element selectionne. Essai de faire chargerDropDownListFS seulement qunad tu n'as pas Page.IsPostBack.

Reply

Marsh Posté le 21-06-2004 à 14:26:33    

Non, ça fait pareil, ça ne me prend toujorus que le premier élément de ma liste ...
Mais il est vrai que quand je clique sur mon bouton, ma pade est rechargée, est-ce possible de dire que la page ne doit se charger?

Reply

Marsh Posté le 13-07-2004 à 11:54:43    

J'ai encore un souci avec ma dropDownList.
J'ai mis la propriété AutoPostBack à True, mais même comme ça, ça ne me prend as en compte l'évènement SelectedIndexChanged.
Merci pour toute aide que vous pourriez m'accorder.

Reply

Marsh Posté le 14-07-2004 à 18:40:23    

Ton OnSelectedIndexChanged fait référence à quel méthode/procédure ?
 
<as:DropDownList AutoPostBack=true OnSelectedIndexChanged= ? >

Reply

Marsh Posté le 14-07-2004 à 18:40:23   

Reply

Marsh Posté le 15-07-2004 à 09:09:08    

En fait, je ne touche pas à mon code html.
Je ne travaille qu'avec le code en vb.net.
Dans mon code, je fais :
 

Code :
  1. DropDownListFS.AutoPostBack = True
  2. '' J'ajoute mes éléments dans ma liste
  3.         dropDownListFS.DataSource() = bibli.dsDataset.Tables("SPECIF" )
  4.         dropDownListFS.DataTextField() = "LIBELLE"
  5.         dropDownListFS.DataBind()
  6.         dropDownListFS.EnableViewState = True

Reply

Marsh Posté le 15-07-2004 à 09:52:58    

ok ok !
 
Ta DropDownList est bien remplie, mais quand tu sélectionnes un item,c'est toujours la 1ere valeur de ta liste qui est sélectionnée, c'est ça?

Reply

Marsh Posté le 15-07-2004 à 14:43:02    

oui, exactement!!!

Reply

Marsh Posté le 15-07-2004 à 14:49:30    

T'as déjà essayé ça pour vb.net ?:
 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
  If not Page.IsPostBack Then
       'code pour remplir la dropdownlist qui est pour toi chargerDropDownListFS()  
           
  End If
end Sub


Message édité par catoun le 15-07-2004 à 15:08:18
Reply

Marsh Posté le 15-07-2004 à 16:09:12    

oui, mais quand je clique sur un bouton, il me perd mes élément de ma liste. Celle-ci redevient vide.
le code que tu as écrit est exactement ce que je fais.
Mais entre le moment où ma page est chargée pour la première fois et le moment où j'utilise ma liste, j'appuie sur plusieurs bouton, et c'et là que je perds les composants de ma liste.

Reply

Marsh Posté le 15-07-2004 à 17:20:28    

aïe aïe ...
 
En gros a chaque clique sur tes boutons, tu perds l'item sélectionné..
Il faudrait ptet sauvegarder la valeur de l'item choisi dans une variable (y'as ptet plus simple mais j'vois pas trop)

Reply

Marsh Posté le 16-07-2004 à 15:07:20    

ben, en fait, c'est encore pire que ça, à chaque clic sur n'importe quel bouton, ma liste se vide, je n'est plus rien du tout dedans, donc, forcément, si je clique dessus, l'élément cliqué n'existe pas (la liste s'affiche, mais est vide.)

Reply

Marsh Posté le 16-07-2004 à 23:37:04    

J'vois vraiment pas là ...
 
tu peux remontrer ton code avec + de détails, mais cette fois avec toute la méthode Page_Load :
 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    
  If not Page.IsPostBack Then  
etc...

Reply

Marsh Posté le 19-07-2004 à 09:32:11    

Merci beaucoup, mais en fait, j'ai résolu (en partie) le problème, je pense que c'était une proprété de mon projet qui n'était pas bonne.
En fait, j'ai créé un nouveau projet et j'ai intégré mon code dedans en faisant des copier/coller.
C'est la seule solution que j'ai trouvé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed