IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Remplacer Select par DropDownList


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut Remplacer Select par DropDownList
    bonjour
    voici un bout de code qui fonctionne correctement
    le code vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
     
    <html>
    <script language="VB" runat="server">
     
        Sub Agent_Click(Sender As Object, E As EventArgs) 
     
            Dim DS As DataSet
            Dim MyConnection As SqlConnection
            Dim MyCommand As SqlDataAdapter
     
            Dim SelectCommand As String = "select * from agent where structure= @structure"
     
            MyConnection = New SqlConnection("Server=(local); Initial Catalog='mission';" _
                & " Trusted_Connection=True;")
            MyCommand = New SqlDataAdapter(SelectCommand, MyConnection)
     
            MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@structure", SqlDbType.VarChar, 2))
            MyCommand.SelectCommand.Parameters("@structure").Value = MySelect.Value
     
            DS = new DataSet()
            MyCommand.Fill(DS, "agent")
     
            MyDataGrid.DataSource = DS.Tables("agent").DefaultView
            MyDataGrid.DataBind()
        End Sub
     
    </script>
    et la partie asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <body style="font: 10pt verdana">
     
      <form id="Form1" runat="server">
     
        <h3><font face="Verdana">Afficher vers un contrôle</font></h3>
     
        Sélectionnez un état : 
     
        <select id="MySelect" runat="server">
          <option>DI</option>
          <option>II</option>  
          <option>KO</option>  
          <option>KK</option>  
          <option>MI</option>  
          <option>OR</option> 
          <option>TN</option>  
          <option>UT</option>  
        </select>
     
        <input id="Submit1" type="submit" OnServerClick="Agent_Click" Value="Obtenir les auteurs" runat="server"/><p>
     
        <ASP:DataGrid id="MyDataGrid" runat="server"
          Width="700"
          BackColor="#ccccff" 
          BorderColor="black"
          ShowFooter="false" 
          CellPadding=3 
          CellSpacing="0"
          Font-Names="Verdana"
          Font-Size="8pt"
          HeaderStyle-BackColor="#aaaadd"
          EnableViewState="false"
        />
     
      </form>
     
    </body>
    </html>
    ce code permet d'afficher le contenu d'une table à partir d'une valeur sélectionnez dans le "select".
    Seulement j'aimerai le remplacer par un dropdownlist afin qu'il ne s'affiche que la(les) valeur(s) stockées dans la base
    Merci pour vos suggestions!

  2. #2
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Salut

    Je pense que j'ai fait un petite fonction qui devrait te satisfaire. Je te le donne et tu me dira ce que tu en penses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Shared Sub RemplirListeDer(ByVal idRQ As String, ByRef nomListe As DropDownList)
    		Dim dm As New DataManager("DataCon")
    		Dim dt As DataTable
    		dt = dm.ExecuterRequeteTabulaire(idRQ)
    		For i As Int16 = 0 To dt.Rows.Count - 1
    			nomListe.Items.Add(New ListItem(dt.Rows(i).Item(1), dt.Rows(i).Item(0)))
    		Next
    End Sub
    Alors il faut tout de même que je t'explique tout ça parce que y a du FrameWork Technique perso.
    L'idée à retenir c'est que tu obtiennes une DataTable avec deux colonnes Valeur et Libellé. Tu place simplement un DropDonwList dans la page ASPX avec juste un ID et rien d'autre, enfin sauf si tu veux mettre des option apr défaut en plus de ce qu'il y a dans la BDD.
    Ensuite, dans la fonction du envoi la requête qui va bien pour créer ta DataTable et hop, ça roule.
    Le DataManager, tu n'y fait pas attention, j'ai fabriqué un truc quipermet de gérer plein de requête avec des fonction simple pour ne aps retaper en permananece les connexions à la base de données, la gestion des commandes et touti quanti...

    Voilà, si ça peut t'aider.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  3. #3
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut
    merci pour ta réponse
    alors si je comprend bien, il faut créer une autre table ,sauf si je n'ai rien compris à ton code????!!!.
    J'aimerai utliser un champ de ma table tout simplement.
    Bon,je teste le code tout de même!

  4. #4
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut
    je suis entrain de tester le code,mais à la compil,j'ai l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataManager: "Type 'DataManager' non défini"
    et je l'ai remplacé par DataViewManager

    DataCon et dm.ExecuterRequeteTabulaire sont soulignés et cette erreur s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Une valeur de type 'String' ne peut pas être convertie en 'System.Data.DataSet'

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Nom, pas une table au sens SQL du terme, mais une DataTable au sens ASP.NET.

    Tu dois générer une DataTable qui se rempli avec tes données venant de ta BDD. Ta DataTable aura deux colonne correspondant à la Valeur et au Libellé qui seront envoyé dans la DropDonwList.

    Dis si ton test à marché ou renvoi l'éventuel message d'erreur que tu aura.

    @+
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    OOOps, trop de temps pour répondre.

    Alors suite à ton message, oui, DataManager, tu ne le connais pas car c'est un objet personnel.

    DataCon c'est le nom de ma connectionString dans mon Web.config.
    Et dm.ExecuterRequeteTabulaire c'est une des fonction de ma Classe DataManger qui me permet d'éxécuter simplement une requête tabulaire.

    Donc il faut que tu remplace ces lignes là par l'exécution d'un requeête tabulaire qui va se déverser dans une DataTable.

    Est ce que c'est plus clair comme ça ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  7. #7
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut
    Syntaxiquement çà tourne,seulement le contenu mon datagrid ne s'affiche plus en fonction du champ sélectionné dans mon dropdownlist,il affiche toute la base
    voici un bout de code behind retapé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub GetAuthors_Click(Sender As Object, E As EventArgs) 
     
            Dim DS As DataSet
            Dim MyConnection As SqlConnection
            Dim MyCommand As SqlDataAdapter
     
            Dim SelectCommand As String = "select idagent,matricule,noms,prenoms,email,qualite,objetmission,pays,ville from agent where structure= structure"
     
            MyConnection = New SqlConnection("Server=(local); Initial Catalog='mission';" _
                & " Trusted_Connection=True;")
            MyCommand = New SqlDataAdapter(SelectCommand, MyConnection)
     
            '  MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@structure", SqlDbType.VarChar, 2))
            '  MyCommand.SelectCommand.Parameters("@structure").Value = nomListe.Value
     
            DS = new DataSet()
            MyCommand.Fill(DS, "agent")
     
            MyDataGrid.DataSource = DS.Tables("agent").DefaultView
            MyDataGrid.DataBind()
        End Sub
        Public Shared Sub RemplirListeDer(ByVal idRQ As String, ByRef nomListe As DropDownList)
            'MyConnection As New DataManager("missionConnectionString")
            Dim dm = New SqlConnection("Server=(local); Initial Catalog='mission';" _
              & " Trusted_Connection=True;")
     
            Dim dt As DataTable
            dt = dm.GetAuthors_Click(idRQ)
            For i As Int16 = 0 To dt.Rows.Count - 1
                nomListe.Items.Add(New ListItem(dt.Rows(i).Item(1), dt.Rows(i).Item(0)))
            Next
        End Sub

  8. #8
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben oui, ça ne amrche pas dans ce sens là.
    Tu envois un DataGrid, alors qu'il faut remplir une DataTable.

    Reprenons dans l'ordre :
    - tu mets une DropDownList dans ta page ASPX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:DropDownList ID="lstMaListe" runat="server"></asp:DropDownList>
    - tu prépares ta requête dans un coin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maRQ = "SELECT maValeur, monLibellé FROM maTable WHERE mesConditions"
    - Tu appelle la fonction que je t'ai filé en lui passant comme paramettre le nom de liste et la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RemplirListeDer(maRQ,lstMaListe)
    - Dans la fonction, tu exécute la requête pour remplir la DataTable et ta liste se rempli, tout simplement.

    Ensuite tu reprend ton code pour faire réagir ton DataGrid en fonction de la DropDownList.

    La fonction que je t'ai donné ne sert uq'à remplir une liste, c'est tout et rien de plus. Elle n'ai pas en lien avec un dataGrid ou autre chose du genre.
    Certes, j'aurais du nétoyer le code de mes ajouts personnels. Le DataManager n'est pas un objet du FrameWork, mais une création perso pour gérer plus facilement mes requêtes.

    Est ce que c'est plus clair comme ça ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  9. #9
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut
    merci pour ton aide
    j'ai finalement réussi.
    Aussi j'ai trouvé une propriété: DataTextField="mavaleur" qui permet de
    récuperer le champ de la bdd.Et avec quelques modif dans le code vb,çà tourne correctement!

    A++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Selection par défaut dans une dropdownlist avec MVC4
    Par paladice dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 23/07/2013, 15h44
  2. Réponses: 1
    Dernier message: 09/03/2009, 18h56
  3. remplacer un "no rows selected" par une valeur
    Par awalter1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/09/2007, 13h25
  4. SELECT / Remplacer le "." par une ","
    Par cluis dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/09/2006, 15h31
  5. remplacer a item dans un select par a autre
    Par koukoya dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/09/2006, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo