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 :

SelectValue dans un dropdownlist cascadé avec un autre dans une gridview


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut SelectValue dans un dropdownlist cascadé avec un autre dans une gridview
    Bonjour,

    Voilà je bloque sur un selectValue dans un dropdownlist cascadé avec un autre dans une gridview.
    Les deux dropdownlist se cascadent bien, bind bien toutes les deux mais lorsqu'il s'agit de vouloir garder ma valeur dans le template edit , il m'envoie balader avec mon SelectValue=<%# Bind(IdService) %> de ma dropdownlist2 au moment ou je modifie la valeur de ma dropdownlist1

    Avec le code, on comprend toujours mieux:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
                    <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSourceTableCreationTemp" DataKeyNames="id, idSiteAssocie" DataMember="DefaultView" style="position: static" Width="754px">
                        <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <Columns>
                            <asp:CommandField ShowEditButton="True" />
                            <asp:TemplateField HeaderText="IdSite" InsertVisible="False" SortExpression="IdSite">
                                <EditItemTemplate>
                                    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSourceSites"
                                        DataTextField="NomSite" DataValueField="IdSite" Style="position: relative" SelectedValue='<%# Bind("IdSite") %>' AutoPostBack="True" >
                                    </asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceSites" runat="server" ConnectionString="<%$ ConnectionStrings:ToIPManagerConnectionString %>"
                                        SelectCommand="SELECT [NomSite], [IdSite] FROM [Site]"></asp:SqlDataSource>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("NomSite") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="IdService" SortExpression="IdService">
                                <EditItemTemplate>
                                    <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSourceServices"
                                        DataTextField="NomService"  DataValueField="IdService"
                                        Style="position: relative"  SelectedValue='<%# Bind("IdService") %>' >
                                    </asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceServices" runat="server" ConnectionString="<%$ ConnectionStrings:ToIPManagerConnectionString %>"
                                        SelectCommand="SELECT * FROM [Service] WHERE ([idSiteAssocie] = @idSiteAssocie)">
                                            <SelectParameters>
                                               <asp:ControlParameter ControlID="DropDownList1" Name="idSiteAssocie" PropertyName="SelectedValue" Type="Int32"/>
                                            </SelectParameters>
                                    </asp:SqlDataSource>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("NomService") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="Nom" HeaderText="Nom" SortExpression="Nom" />
                            <asp:BoundField DataField="Prenom" HeaderText="Prenom" SortExpression="Prenom" />
                            <asp:BoundField DataField="DN" HeaderText="DN" SortExpression="DN" Visible="False" />
                            <asp:CommandField ShowDeleteButton="True" />
                            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                                SortExpression="id" Visible="False" />
                            <asp:BoundField DataField="idSiteAssocie" HeaderText="idSiteAssocie" SortExpression="idSiteAssocie" />
                        </Columns>
                        <RowStyle BackColor="#E3EAEB" />
                        <EditRowStyle BackColor="#7C6F57" />
                        <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                        <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                        <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" />
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSourceTableCreationTemp" runat="server" ConnectionString="<%$ ConnectionStrings:ToIPManagerConnectionString %>"
                        SelectCommand="SELECT CreationTemp.id, CreationTemp.IdSite, CreationTemp.IdService, CreationTemp.Nom, CreationTemp.Prenom, CreationTemp.DN, Site.NomSite, Site.Description, Site.IdSite AS Expr1, Service.IdService AS Expr2, Service.NomService, Service.Description AS Expr3, Service.idSiteAssocie FROM CreationTemp INNER JOIN Site ON CreationTemp.IdSite = Site.IdSite INNER JOIN Service ON Site.IdSite = Service.idSiteAssocie AND CreationTemp.IdService = Service.IdService" 
                        UpdateCommand="UPDATE CreationTemp SET IdSite = @IdSite, IdService = @IdService, Nom = @Nom, Prenom = @Prenom WHERE (id = @id);" 
                        DeleteCommand="DELETE FROM CreationTemp WHERE id = @id ;" 
                        InsertCommand="INSERT INTO CreationTemp(Site, Service, Nom, Prenom) VALUES ('0','0', 'Nom', 'Prénom');">
                        <UpdateParameters>
                            <asp:Parameter Name="IdSite"/>
                            <asp:Parameter Name="IdService" DefaultValue="0"/>
                            <asp:Parameter Name="Nom" />
                            <asp:Parameter Name="Prenom" />
                            <asp:Parameter Name="id" />
                        </UpdateParameters>
                        <DeleteParameters>
                            <asp:Parameter Name="id" />
                        </DeleteParameters>
                    </asp:SqlDataSource>
    Si j'enlève mon SelectValue (celui qui est en rouge dans le code), aucun plantage mais si je le mets, cela fonctionne lors du passage en edit mais èds que je change la valeur de dropdownlist1, il ne trouve plus le paramètre IdSiteAssocie semble t'il...
    Je précise que tout fonctionne pour l'instant sans code behind, juste en mode design... Il doit bien y avoir une petite option à ajouter...

    Une petite piste, svp, une toute petite...

    Merci d'avance!!!

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Euh... SelectedValue c'est la valeur affichée par ta DropDownList, alors que tu veux que dans cette ddl tu puisses avoir tous les id non ?

    ça serait pas un DataTextField au lieu de SelectedValue que tu voudrais ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci Casii de me répondre!

    Le remplissage de ma ddl2 est déjà fait, cela fonctionne mais je souhaite que, lorsque je passe en mode edit, la valeur de départ soit sélectionner.
    Si la valeur de départ de ma ddl2 pour cette ligne est 32 car ddl1 vaut 3, je souhaite qu'elle soit selectionner, ce qui est le cas avec SelectValue=<%# Bind(IdService) %> mais si je me mets à modifier ma ddl1 alors les valeurs contenues dans ddl2 changent mais comme il sait plus quelle est la selectedValue et bien il m'envoie sur les roses...

    Il manque un tout petit quelque chose, une tite astuce...

    Merci d'avance à tout le monde pour votre aide!

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM [Service] WHERE ([idSiteAssocie] = @idSiteAssocie)"
    Et si tu remplaçais * par IdService ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Je vois ce que tu veux dire, j'ai fait le test, ça m'a obligé à enlever mon DataTextField="NomService" mais au delà de ça j'ai toujours le message en pop-up: "Il n'y a pas de code source disponible pour l'emplacement en cours."

    J'ai la possiblité alors de faire ok ou d'afficher le code machine

    Puis j'ai un deuxième message:
    L'esception InvalidOperationException n'a pas été gérée par le code utilisateur.
    Les méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données.

    Si seulement je pouvais gérer le defaultvalue... par une expression et non une valeur, je me sortirais alors du problème...

    D'autres idées??

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/01/2015, 09h27
  2. Réponses: 1
    Dernier message: 30/01/2013, 09h21
  3. Réponses: 1
    Dernier message: 05/10/2008, 22h05
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. Réponses: 11
    Dernier message: 12/04/2005, 14h08

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