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 :

Valeur DropDownList pour autre DropDonwList [Débutant]


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Valeur DropDownList pour autre DropDonwList
    Bonjour,

    Tout d'abord je tien à précisez que je suis débutant en vb.net, je viens de découvrir le langage car je dois modifié un projet déjà créé. Et je suis un alternant

    Après plusieurs recherche sur le net je n'ai toujours pas trouvé de réponse à mon problème, j'ai effectivement trouvé des sujets qui peuvent paraitre similaire mais je n'ai pas résolu mon problème malgré tous donc je pense que je n'ai pas su adapté mon code au problème posé

    Donc je m'excuse par avance si se sujet est un doublons

    Mon problème :

    J'ai deux DropDownList qui sont inclus dans un GridView
    Mon GridView comporte 3 modes :
    • Edition
    • Ajout
    • Affichage


    - J'ai une première DropDownList qui est rempli par des valeurs recherché en base de donnée via un LinqDatasource (Que l'on nommera par son ID : ddlCaisseWrite) (List qui comporte les lieux de travail d'un employé)
    - J'ai une seconde DropDownList qui est aussi rempli par des valeurs en BDD via un autre LinqDataSource ( Que l'on nommera par son ID : ddlFonctionWrite) (List qui comporte les différentes fonctions Métiers des employés selon leur lieu de travail)

    Exemple : un employé A qui travaille dans l'agence TOTO ne peux se voir affecté que les fonctions de l'agence TOTO , un employé B dans l'agence TATA n'aura que les fonctions TATA (donc pas TOTO pour TATA réciproquement)

    Le problème est tel que : Je n'arrive pas à récupérer la valeur de ma liste ddlCaisseWrite pour complété le LinqDataSource de ma liste ddlFonctionWrite (donc Completé le Where du Linq : Caisse = @caisse)

    DONC : Pour résuméer je voudrais que ma liste ddlFonctionWrite s'actualise dynamiquement par rapport à la valeur selectionné dans ma liste ddlCaisseWrite


    Tous cela sera plus visuel avec du Code



    Pour le code :

    GridView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            <asp:GridView ID="gvGestionMetiers" runat="server" Width="100%" CssClass="stat" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
                DataSourceID="LinqDataSourceMetier" DataKeyNames="MET_CODE_LOCAL" ShowFooter="True" PageSize="50" EmptyDataText="Aucun métier trouvé" GridLines="Horizontal" AccessKey="2">
                <Columns>
    DropDownList Fonction et Lieu de Travail :

    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
     
                    <asp:TemplateField HeaderText="Caisse" SortExpression="MET_CAISSE">
                        <EditItemTemplate>
                            <asp:DropDownList CssClass="chosen" ID="ddlCaisseWrite" AssociatedControlID="ddlCaisse" runat="server" Height="20px" DataSourceID="LinqDataSourceCaisse" DataTextField="SOC_LIBELLE" DataValueField="SOC_LIBELLE" SelectedValue='<%# Bind("MET_CAISSE") %>' Width="95%" AutoPostBack="True">
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:DropDownList CssClass="chosen" ID="ddlCaisseInsert" runat="server" Height="20px" DataSourceID="LinqDataSourceCaisse" DataTextField="SOC_LIBELLE" DataValueField="SOC_LIBELLE" Width="95%">
                            </asp:DropDownList>
                        </FooterTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblCaisseRead" runat="server" Text='<%# Eval("MET_CAISSE")%>'></asp:Label>
                        </ItemTemplate>
                     </asp:TemplateField>
     
                    <asp:TemplateField HeaderText="Fonction" SortExpression="FCT_CODE">
                        <EditItemTemplate>
                            <asp:DropDownList CssClass="chosen-search-input" AppendDataBoundItems="True" ID="ddlFonctionWrite" runat="server" Height="20px" DataSourceID="LinqDataSourceFonction" DataTextField="Libelle" DataValueField="Code" SelectedValue='<%# Bind("FCT_CODE") %>' Width="95%">
                                <asp:ListItem Enabled="False" Value=""></asp:ListItem>
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:DropDownList CssClass="chosen" ID="ddlFonctionInsert" runat="server" Height="20px" DataSourceID="LinqDataSourceFonction" DataTextField="Libelle" DataValueField="Code" Width="95%">
                            </asp:DropDownList>
                        </FooterTemplate>
                         <ItemTemplate>
                             <asp:Label ID="lblCode" runat="server" Text='<%# Eval("FCT_CODE")%>'></asp:Label>
                             <asp:Label ID="lblfonction" runat="server" Text='<%# Eval("GetFonctionLibelle")%>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

    LinqDatasource pour les Lieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:LinqDataSource ID="LinqDataSourceCaisse" runat="server" ContextTypeName="Referentiel_da.REFERENTIEL_CEHDFDataContext" EntityTypeName="" TableName="SOCIETE"></asp:LinqDataSource>
    LinqDataSource pour les fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            <%---DataSource des Fonctions--%>
            <asp:LinqDataSource
                ID="LinqDataSourceFonction" runat="server" ContextTypeName="Referentiel_da.REFERENTIEL_CEHDFDataContext" TableName="FonctionEds" EntityTypeName="" OrderBy="Caisse,Libelle" Select="new (Libelle, Code, Caisse)" Where="Caisse = @caisse">
                <WhereParameters>
                    <asp:ControlParameter Name="caisse" ControlID="ddlCaisseWrite"  PropertyName="SelectedValue" Type="String" DefaultValue="" ConvertEmptyStringToNull="false" />
                </WhereParameters>
            </asp:LinqDataSource>
    J'espère avoir réussi a exprimé mon problème assez clairement et avoir donné assez de ressources Code pour vous permettre de m'aider.

    Merci d'avance

    Cordialement

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2018
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Je n'ai donc pas eu de réponse mais si cela peut aider d'autre personne je soumet ma solution

    Faire un SqlDataSource plûtot qu'un LinqDataSource pour ddlfonctionWrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            <asp:SqlDataSource
                ID="LinqDataSourceFonction"
                runat="server"
                ConnectionString='<%$ ConnectionStrings:ReportLayer.My.MySettings.REFERENTIEL_CEHDFConnectionString %>'
                SelectCommand="SELECT * FROM [FONCTION_EDS] WHERE FCT_CAISSE = @param ORDER BY [FCT_LIBELLE]">
                <SelectParameters>
                    <asp:Parameter Name="param" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
    Créé un Sub OnPreRender

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Protected Sub ddlCaisseWrite_OnPreRender(sender As Object, e As EventArgs)
            Dim caisseWrite As DropDownList = TryCast(sender, DropDownList)
            Dim row As GridViewRow = CType(caisseWrite.NamingContainer, GridViewRow)
     
            Dim ddlCaisseWrite As DropDownList = CType(row.FindControl("ddlCaisseWrite"), DropDownList)
     
            LinqDataSourceFonction.SelectParameters("param").DefaultValue = ddlCaisseWrite.SelectedValue
            LinqDataSourceFonction.DataBind()
        End Sub
    On ajoute l'evenement sur la DropDownList ddlCaisseWrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                    <asp:TemplateField HeaderText="Caisse" SortExpression="MET_CAISSE">
                        <EditItemTemplate>
                            <asp:DropDownList CssClass="chosen" ID="ddlCaisseWrite" AssociatedControlID="ddlCaisse" runat="server" Height="20px"
                                DataSourceID="LinqDataSourceCaisse" DataTextField="SOC_LIBELLE" DataValueField="SOC_LIBELLE" SelectedValue='<%# Bind("MET_CAISSE") %>'
                                Width="95%" OnPreRender="ddlCaisseWrite_OnPreRender" AutoPostBack="true">
                            </asp:DropDownList>
                        </EditItemTemplate>
    Voilà, je passe donc le sujet en resolu

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/12/2008, 17h14
  2. Réponses: 1
    Dernier message: 17/07/2008, 09h28
  3. Réponses: 6
    Dernier message: 29/11/2007, 16h15
  4. Réponses: 9
    Dernier message: 09/03/2007, 15h01
  5. Réponses: 3
    Dernier message: 26/02/2007, 10h52

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