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 :

DropDownList et Update Panel


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut DropDownList et Update Panel
    Bonjour à tous,

    Cela fait 2 jours que je bloque sur le sujet et il me semble avoir le net entier

    J'ai une DropDownListACModel que je voudrais updater en fonction du choix d'une DropDownListACType.
    Voilà ma page ascx:
    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
     
    <table class="AdjustTable">
    	<tbody>
    		<tr>
    			<td>
    				<asp:DropDownList ID="DropDownListACType" style="width:50px; font-size:11px;" 
    					runat="server"
    					AutoPostBack="true"
    					OnSelectedIndexChanged="DropDownListACType_SelectedIndexChanged">
    				</asp:DropDownList>
    				<asp:RequiredFieldValidator
    				    ID="RequiredFieldValidatorDropDownListACType"
    				    ControlToValidate="DropDownListACType"
    				    runat="server"/>
    			</td>
    			<td>
    				&nbsp; - &nbsp;
    			</td>
    			<Triggers> 
    				<asp:AsyncPostBackTrigger ControlID="DropDownListACType" EventName="SelectedIndexChanged" /> 
    			</Triggers> 
    			<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    				<ContentTemplate>
    				    <td>
    						<asp:DropDownList ID="DropDownListACModel" style="width:142px; font-size:11px;" runat="server" >
    						</asp:DropDownList>
    						<asp:RequiredFieldValidator
    							ID="RequiredFieldValidatorDropDownListACModel"
    							ControlToValidate="DropDownListACModel"
    							runat="server"/>
    					</td>
    				</ContentTemplate>
    			</asp:UpdatePanel>
    		</tr>
    	</tbody>
    </table>
    Et voilà le code behind en C#
    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
     
     protected void DropDownListACType_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    using (SPWeb currentWeb = SPContext.Current.Web.ParentWeb.ParentWeb)
                    {
                        SPList list = currentWeb.Lists["ACModelList"];
     
                        if (list != null)
                        {
                            string acType = DropDownListACType.SelectedValue;
                            if (acType.CompareTo("") == 0)
                            {
                                DropDownListACModel.ClearSelection();
                                DropDownListACModel.Items.Clear();
                                DropDownListACModel.SelectedIndex = 0;
                            }
                            else if (acType.CompareTo("42") == 0)
                            {
                                DropDownListACModel.ClearSelection();
                                DropDownListACModel.Items.Clear();
                                foreach (SPListItem item in list.Items)
                                {
                                    DropDownListACModel.Items.Add(item["ACType42"].ToString());
                                }
                                DropDownListACModel.SelectedIndex = 0;
                            }
                            else if (acType.CompareTo("72") == 0)
                            {
                                DropDownListACModel.ClearSelection();
                                DropDownListACModel.Items.Clear();
                                foreach (SPListItem item in list.Items)
                                {
                                    DropDownListACModel.Items.Add(item["ACType72"].ToString());
                                }
                                DropDownListACModel.SelectedIndex = 0;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    PortalLog.LogString("Fill Drop Down List Ac Model error : " + ex.Message);
                }
            }
    et mon Page_Load
    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
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    // Create User Service
                    UsersService us = new UsersService();
                    USERS currUser = getCurrentUser(us);
     
                    TextBoxStartDate.Enabled = false;
                    TextBoxDeliveryDate.Enabled = false;
     
                    // Fill the MRO Name with user entity name
                    fillMROName(currUser, us);
                    fillDropDownListACType();
                    fillReportingDate();
                }
            }
    Le pb que j'ai c'est qu'il ya un postback sur la page entière et non seulement sur la DropDownListACModel du coup je perds les informations de ma balise input lors du postback.
    Une idée ? Merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    Bonjour,
    je pense que t'as pas bien utilisé le contrôle UpdatePanel. Essaye ceci :
    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
     
    <table class="AdjustTable">
    	<tbody>
    		<tr>
    			<td>
    				<asp:DropDownList ID="DropDownListACType" style="width:50px; font-size:11px;" 
    					runat="server"
    					AutoPostBack="true"
    					OnSelectedIndexChanged="DropDownListACType_SelectedIndexChanged">
    				</asp:DropDownList>
    			</td>
    			<td>
    				&nbsp; - &nbsp;
    			</td>						
    			<asp:UpdatePanel ID="UpdatePanel2" runat="server">
    				<ContentTemplate>
    				    <td>
    						<asp:DropDownList ID="DropDownListACModel" style="width:142px; font-size:11px;" runat="server" >
    						</asp:DropDownList>				
    					</td>
    				</ContentTemplate>
    				<Triggers>
                        <asp:AsyncPostBackTrigger ControlID="DropDownListACType" EventName="SelectedIndexChanged" />
                    </Triggers>
    			</asp:UpdatePanel>
    		</tr>
    	</tbody>
    </table>

  3. #3
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut
    Bonjour,

    Je viens de tester ta proposition et le pb maintenant (que j'avais déjà eu) est que l’évènement ne se lance qu'une seule fois lors du premier changement d'index de la DDL. Ensuite plus rien.

    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    Citation Envoyé par Hoegaarden Voir le message
    l’évènement ne se lance qu'une seule fois lors du premier changement d'index de la DDL. Ensuite plus rien.
    Quelle évènement ? peux-tu détailler un peu plus le pb ?

  5. #5
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut
    Salut,

    A la base c'était l’évènement SelectedIndexChanged de la ddl DropDownListACType mais je viens de me rendre compte que plus aucun évènement n'est intercepté.
    En effet j'ai l’évènement bouton_click qui censé se lancer lorsque je clique sur le bouton en question mais cela ne fonctionne plus.
    Donc en résumé j'ai l'impression que les évènements marchent une fois seulement peut importe l’évènement.
    Bref déjà que je comprenais pas bien avant là je suis perdu ...

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    la portion de code que tu montres me semble correcte. J'ai essayé de trouver la petite bête mais n'ai rien vu (ce qui ne veut pas dire qu'il n'y a rien... ).

    Dans mes souvenirs de problème identique, je me suis rappelé avoir eu des soucis avec des structure de <table> mal formées (TD manquant par exemple).

    Tout à l'air ok dans ce que tu montres mais vérifie peut être le rendu de ta page pour t'assurer que ta structure est bonne.

    Bon courage

  7. #7
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut
    Re,

    Bon j'ai trouvé ce qui n'allait pas dans ma page asp.
    J'appelais la fonction javascript window.onload. Bon je comprends pas bien pourquoi ça fait planter mais dès que je l'ai enlevé tout fonctionnait.

    Merci pour votre aide.

    A bientôt

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/10/2007, 20h21
  2. Update Panel - question de fond
    Par igorzup dans le forum ASP.NET
    Réponses: 9
    Dernier message: 16/10/2007, 17h20
  3. valeur mise a jour dans un update panel
    Par kazoumoulox dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/08/2007, 13h51
  4. [AJAX] performances fortement diminuées avec un Update panel (et IE)?
    Par cortex024 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2007, 12h40
  5. ASP 2.0 Ajax Update Panel & Trigger
    Par chnew dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/06/2007, 14h16

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