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 :

[C#] Problème DropDownList liées


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut [C#] Problème DropDownList liées
    Bonjour à tous,
    J'ai un problème.

    Dans ma BD, j'ai deux tables: company et site.

    Dans la table company, j'ai les champs suivants:
    ID_COMPANY (uniqueidentifier)(clé primaire)
    COMPANY_NAME (text)

    Dans la table site, j'ai les champs suivants:
    ID_SITE (uniqueidentifier)(clé primaire)
    ID_COMPANY (uniqueidentifier)(clé étrangère)
    SITE_NAME (text)


    Sur ma page web, j'ai placé deux dropdownlists que je veux liées entre elles.
    Ma première dropdownlist D1 a pour ID: STEP0_LOGIN_DROPDOWNLIST_COMPANY
    La seconde dropdownlist D2 a pour ID: STEP0_LOGIN_DROPDOWNLIST_SITE

    Je but est d'afficher les sites (dans D2) en fonction de ce qui a été sélectionné dans D1.

    Pour ce faire, j'ai placé deux sqldatasource S1 et S2 dans ma page que j'ai respectivement liées à D1 et D2.

    S1 a été paramétré pour éxécuter la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT * FROM [company]
    Sera affiché dans D1 le champs COMPANY_NAME et la valeur associée à chaque élément sera ID_COMPANY.

    Jusque là pas de souci.


    S2 a été paramétré pour éxécuter la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT * FROM [site] WHERE ([ID_COMPANY] = @ID_COMPANY)
    @ID_COMPANY = STEP0_LOGIN_DROPDOWNLIST_COMPANY.SelectedValue


    Enfin AutopostBack est activé sur D1.

    Au final, je récupère bien tous mes éléments dans D1 mais je n'ai rien dans D2 lors de la sélection d'un élément de D1. Je ne récupère aucun résultats dans D2. Pourtant je sais qu'il existe un site pour une company comme le montre les enregistrements des tables company et site:

    Company:
    ID_COMPANY -----------------------------COMPANY_NAME
    52101a81-3736-42ef-99f6-8eca64447dbc kjkjk
    52101a81-3736-42ef-99f6-8eca64447dbd 111


    Site:
    ID_SITE -----------ID_COMPANY-------------SITE_NAME
    47423a6a-0670-4135-b16a-26f544ea2df9 52101a81-3736-42ef-99f6-8 ddddeca64447dbd SITE de 111

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Il y a des chances que ce soit un probleme de databind qui ne se fait pas ou au alors au mauvais moment, pourrait tu poster ton code ASPX et le code behind?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Bonjour Arthis !

    Voici le code de ma page qui "écrit" les deux listbox
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    <body style="width: 80%; height: 100%;">
        <form id="form1" runat="server">
        <div>
            <br />
            <br />
            &nbsp;</div>
            <asp:Wizard ID="Wizard" runat="server" BackColor="#E6E2D8" BorderColor="#999999"
                BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em"
                Height="500px" Width="1125px" ActiveStepIndex="0" OnFinishButtonClick="Wizard_FinishButtonClick">
                <StepStyle BorderWidth="2px" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderStyle="Solid" Font-Bold="False" Font-Italic="False" Font-Size="X-Small" />
                <SideBarStyle BackColor="#1C5E55" Font-Size="0.9em" VerticalAlign="Middle" Width="300px" Font-Overline="False" />
                <NavigationButtonStyle BackColor="White" BorderColor="#C5BBAF" BorderStyle="Solid"
                    BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#1C5E55" Font-Bold="False" />
                <WizardSteps>
                    <asp:WizardStep runat="server" Title="Step 1 - Login&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;">
                        <table style="width: 100%; height: 30%">
                            <tr>
                                <td style="width: 18%; height: 61px" class="Question_TR">
                                    <strong>
                                    Name of Company :</strong></td>
                                <td colspan="2" style="vertical-align: middle; height: 61px; text-align: left" class="Question_TR">
                                    <asp:Label ID="STEP0_LOGIN_LABEL_COMPANY" runat="server" Height="1px" Width="192px" CssClass="label"></asp:Label>
                                    &nbsp;
                                    <asp:RequiredFieldValidator ID="STEP0_RFV_LISTBOX_COMPANY" runat="server" CssClass="RequireValidation"
                                        ErrorMessage="&lt;img src =' ./images/error2.png'&gt;   You need to select a company" style="left: 935px; top: 188px" ControlToValidate="STEP0_LOGIN_DROPDOWNLIST_COMPANY" ForeColor="" Width="206px" EnableClientScript="False"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td style="width: 18%; height: 38px" class="Response_TR">
                                    <span style="color: #000099">Select your company</span></td>
                                <td style="vertical-align: middle; width: 40%; height: 38px; text-align: center" class="Response_TR">
                                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Security_Rules_CSGConnectionString %>"
                                        SelectCommand="SELECT * FROM [company]"></asp:SqlDataSource>
                                    <asp:DropDownList ID="STEP0_LOGIN_DROPDOWNLIST_COMPANY" runat="server" AutoPostBack="True" OnSelectedIndexChanged="STEP0_LOGIN_DROPDOWNLIST_COMPANY_SelectedIndexChanged" DataSourceID="SqlDataSource1" DataTextField="COMPANY_NAME" DataValueField="ID_COMPANY">
                                    </asp:DropDownList>
                                    &nbsp; &nbsp; &nbsp;</td>
                                <td style="width: 100%; height: 38px" class="Response_TR">
                                </td>
                            </tr>
                            <tr>
                                <td style="width: 18%; height: 54px" class="Question_TR">
                                    <strong>Site :</strong></td>
                                <td colspan="2" style="vertical-align: middle; height: 61px; text-align: left" class="Question_TR">
                                    &nbsp;<asp:Label ID="STEP0_LOGIN_LABEL_SITE" runat="server" Height="1px" Width="192px" CssClass="label"></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td style="width: 18%; height: 47px" class="Response_TR">
                                    <span style="color: #000099">Select your Site</span></td>
                                <td style="vertical-align: middle; width: 40%; height: 47px; text-align: center" class="Response_TR">
                                    <asp:DropDownList ID="STEP0_LOGIN_DROPDOWNLIST_SITE" runat="server" OnSelectedIndexChanged="STEP0_LOGIN_DROPDOWNLIST_SITE_SelectedIndexChanged" DataSourceID="SQL_SR_site" DataTextField="ID_SITE" DataValueField="ID_SITE" AutoPostBack="True">
                                        <asp:ListItem></asp:ListItem>
                                        <asp:ListItem>dfdf</asp:ListItem>
                                    </asp:DropDownList>
                                    <asp:SqlDataSource ID="SQL_SR_site" runat="server" ConnectionString="<%$ ConnectionStrings:Security_Rules_CSGConnectionString %>"
                                        SelectCommand="SELECT * FROM [site] WHERE ([ID_COMPANY] = @ID_COMPANY)">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="STEP0_LOGIN_DROPDOWNLIST_COMPANY" Name="ID_COMPANY"
                                                PropertyName="SelectedValue" Type="Object" />
                                        </SelectParameters>
                                    </asp:SqlDataSource>
                                    &nbsp;
                                </td>
                                <td style="width: 100%; height: 47px" class="Response_TR">
                                    <asp:RequiredFieldValidator ID="STEP0_RFV_LISTBOX_SITE" runat="server" ControlToValidate="STEP0_LOGIN_DROPDOWNLIST_SITE"
                                        CssClass="RequireValidation" ErrorMessage="&lt;img src =' ./images/error2.png'&gt;   You need to select a site"
                                        ForeColor="" Style="left: 943px; top: 301px" Width="206px" EnableClientScript="False"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
    As tu besoin d'autres informations ??

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    J'ai résolu mon problème.

    Ci-dessous le code de la dropdownlist site lié à sa sqldatasource:
    Code qui ne foncitonnait pas
    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="STEP0_LOGIN_DROPDOWNLIST_SITE" runat="server" OnSelectedIndexChanged="STEP0_LOGIN_DROPDOWNLIST_SITE_SelectedIndexChanged" DataSourceID="SQL_SR_site" DataTextField="ID_SITE" DataValueField="ID_SITE" AutoPostBack="True">
                                        <asp:ListItem></asp:ListItem>
                                        <asp:ListItem>dfdf</asp:ListItem>
                                    </asp:DropDownList>
                                    <asp:SqlDataSource ID="SQL_SR_site" runat="server" ConnectionString="<%$ ConnectionStrings:Security_Rules_CSGConnectionString %>"
                                        SelectCommand="SELECT * FROM [site] WHERE ([ID_COMPANY] = @ID_COMPANY)">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="STEP0_LOGIN_DROPDOWNLIST_COMPANY" Name="ID_COMPANY"
                                                PropertyName="SelectedValue" Type="Object" />
                                        </SelectParameters>
                                    </asp:SqlDataSource>
    Et ici, le code qui fonctionne:
    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="STEP0_LOGIN_DROPDOWNLIST_SITE" runat="server" OnSelectedIndexChanged="STEP0_LOGIN_DROPDOWNLIST_SITE_SelectedIndexChanged" DataSourceID="SQL_SR_site" DataTextField="ID_SITE" DataValueField="ID_SITE" AutoPostBack="True">
                                        <asp:ListItem></asp:ListItem>
                                        <asp:ListItem>dfdf</asp:ListItem>
                                    </asp:DropDownList>
                                    <asp:SqlDataSource ID="SQL_SR_site" runat="server" ConnectionString="<%$ ConnectionStrings:Security_Rules_CSGConnectionString %>"
                                        SelectCommand="SELECT * FROM [site] WHERE ([ID_COMPANY] = @ID_COMPANY)">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="STEP0_LOGIN_DROPDOWNLIST_COMPANY" Name="ID_COMPANY"
                                                PropertyName="SelectedValue" Type="String" />
                                        </SelectParameters>
                                    </asp:SqlDataSource>
    C'est le type (en gras souligné) qui posait problème !

    Merci pour ton aide Arthis !!

    Bonne journée !!

  5. #5
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut,

    Citation Envoyé par LE NEINDRE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <asp:SqlDataSource ID="SQL_SR_site" runat="server" ConnectionString="<%$ ConnectionStrings:Security_Rules_CSGConnectionString %>"
                                        SelectCommand="SELECT * FROM [site] WHERE ([ID_COMPANY] = @ID_COMPANY)">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="STEP0_LOGIN_DROPDOWNLIST_COMPANY" Name="ID_COMPANY"
                                                PropertyName="SelectedValue" Type="Object" />
                                        </SelectParameters>
                                    </asp:SqlDataSource>
    Essaie d'enlever
    Type="Object"
    Edit : , j'aurais dû rafraichir la fenetre avant de poster

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Citation Envoyé par mehdi_tn
    Essaie d'enlever
    Citation:
    Type="Object"
    Bonjour Medhi_tn,

    Oui ça fonctionne lorsque j'enlève le type.

    Dans ce cas, quel type par défaut prend il ???

  7. #7
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Bein dans le cas du parametre ID_COMPANY, Ca doit etre un string

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

Discussions similaires

  1. [Access 2003] problème table liée
    Par stargates dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/09/2008, 18h39
  2. Problème DropDownList avec Multiview
    Par Lockss dans le forum ASP.NET
    Réponses: 1
    Dernier message: 12/11/2007, 12h49
  3. DropDownList liée à une BDD + "tous"
    Par kheironn dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/06/2007, 12h54
  4. remplissage d'un dropDownList liée à un BD
    Par shirya dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/02/2007, 16h10
  5. 2 DropDownList liées
    Par cnguyen dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/06/2006, 22h16

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