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 :

Utiliser des DropDownList comme paramètres pour une procédure stockée


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Utiliser des DropDownList comme paramètres pour une procédure stockée
    Bonjour à tous !

    Je suis bloqué depuis plusieurs jours sur mon code.

    J'ai plusieurs DropDownList. Je souhaite prendre la valeur de 2 d'entre elles pour les utiliser comme paramètres pour une procédure stockée et afficher le résultat dans une autre DropDownList.

    J'ai tout d'abord utiliser le designer pour le faire. Cela fonctionne parfaitement. Cependant, je souhaite ajouter des lignes de manière dynamique et pour cela, il me faut écrire tout ça en code behind et là, ça coince avec plein d'erreurs.

    Voici un dessin pour résumer ce que je veux faire :



    Voici le code qui fonctionne en designer et que je dois rendre générique en code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <asp:DropDownList ID="DropDownList4" runat="server"
                        DataSourceID="SqlDataSource3" DataTextField="Code" 
                            DataValueField="Code" AutoPostBack="True">
                        </asp:DropDownList>
                        <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:InternalDistributionConnectionString %>" 
                            SelectCommand="DDLists" SelectCommandType="StoredProcedure">
                            <SelectParameters>
                           <asp:ControlParameter ControlID = "DropDownList3" Name = "matable" PropertyName ="SelectedValue" Type= "String" />
                           <asp:ControlParameter ControlID = "DropDownList1" Name = "projectID" PropertyName ="SelectedValue" Type= "String" />
                            </SelectParameters>
                        </asp:SqlDataSource>
    Et voici comment j'ai traduit cela en code behind :

    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
    39
    40
    41
    42
    TableCell cell3 = new TableCell();
     
                DropDownList ddl3 = new DropDownList();
                ddl3.ID = "DropDownListRow_" + rowsCount + "Col_3";
     
                SqlDataSource SQLDS2 = new SqlDataSource();
                Page.Controls.Add(SQLDS2);
     
                SQLDS2.ConnectionString = SQLDS.ConnectionString;
                SQLDS2.SelectCommand = "DDLists";
                SQLDS2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
     
                ControlParameter matable = new ControlParameter();
                matable.Name = "maTable";
                matable.PropertyName = "SelectedValue";
                matable.Type = TypeCode.String;
                matable.ControlID = "DropDownList1";
     
     
                ControlParameter projectID = new ControlParameter();
                projectID.Name = "projectID";
                projectID.ControlID = "DropDownList3";
                projectID.PropertyName = "SelectedValue";
                projectID.Type = TypeCode.String;
     
                SQLDS2.SelectParameters.Clear();
     
                SQLDS2.SelectParameters.Add(matable);
                SQLDS2.SelectParameters.Add(projectID);
     
                SQLDS2.DataBind();
     
                ddl3.DataSource = SQLDS2;
     
                ddl3.DataTextField = "Code";
                ddl3.DataValueField = "Code";
                ddl3.AutoPostBack = true;
                ddl3.DataBind();
     
     
                cell3.Controls.Add(ddl3);
                row.Cells.Add(cell3);

    Voici enfin le code de ma procédure stockée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ALTER PROCEDURE DDLists
    	@requete nvarchar(255) = '',
    	@maTable nvarchar(255),
    	@projectID nvarchar(255)
    AS
    SET @requete = 'SELECT Code FROM '+ @maTable +' WHERE (ProjectID = '+ @projectID +')'
    EXECUTE(@requete)
    Et au cas où les erreurs seraient ailleurs, voici tout mon code :

    Code aspx

    Code aspx.cs

    Sur un autre forum, on m'a dit que c'était peut-être dû au fait que les contrôles dynamiquement créés ne persistaient pas lors d'un postback. C'est peut-être ça mais je n'ai aucune idée de ce qu'il faut faire pour corriger ce problème.

    J'espère que vous pourrez m'aider

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Effectivement ils ont raison sur ton autre forum quand a la durée de vie des controls après un postback..

    Par contre a tu pensé a l'ajax. Des update panel et une bonne gestion des post backs devrait régler rapidement ton problème.

Discussions similaires

  1. Utilisation des tableaux comme paramètres pour les procédures
    Par guefrachi dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 01/10/2010, 18h50
  2. Réponses: 2
    Dernier message: 30/10/2008, 16h29
  3. Réponses: 1
    Dernier message: 15/06/2008, 18h14
  4. Réponses: 2
    Dernier message: 03/12/2006, 12h37
  5. Un fichier .bmp comme paramètre d'une Procédure stockée
    Par FONKOU dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2004, 17h56

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