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 :

Pourquoi ma liste se vide après un postback ? [Débutant]


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
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Par défaut Pourquoi ma liste se vide après un postback ?
    Bonjour,

    J'ai une dropdownlist que je charge à l'ouverture de ma fenêtre modal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function ShowMyModalPopupLoc(p_LblLocBatId,p_LblLocEtgId,p_LblLocId) 
        { 
           
             var lblLocBatId =  $('#'+ p_LblLocBatId);
             var lblLocEtgId =  $('#'+ p_LblLocEtgId);
             var lblLocId =  $('#'+ p_LblLocId);
             $( "#dialog-formLoc" ).dialog( "open" );
             $('#<%= tbLblLocBatId.ClientID %>').val(lblLocBatId.attr('ID'));
             $('#<%= tbLblLocEtgId.ClientID %>').val(lblLocEtgId.attr('ID'));
             $('#<%= tbLblLocId.ClientID %>').val(lblLocId.attr('ID'));
             
             <%ChargerBatiment();%>
        }
    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
     <div id="dialog-form" title="Modifier le responable">
            <asp:UpdatePanel ID="UpdatePanelResponsable" runat="server">
                <contenttemplate>
                    <p><asp:Label ID="lblDialogFormMsgError" runat="server" Text=" "></asp:Label></p>
    		        <asp:Label ID="lblNewResponsable" runat="server" Text="Nouveau responsable"></asp:Label>
    		        <asp:TextBox ID="tbNewResponable" runat="server"></asp:TextBox><br />
    		        <asp:Button ID="btNewResponable" runat="server" Text="Chercher"  Font-Size="XX-Small" onclick="btNewResponable_Click" onclientclick="return (valide3Car());" /><br /><br />
    		        <asp:DropDownList ID="dlNewResponable" runat="server" AutoPostBack="true" DataTextField="Email" Width="230px" Font-Size="XX-Small"
                                    DataValueField="ID" DataTextFormatString="{0}" OnSelectedIndexChanged="dlNewResponable_OnSelectedIndexChanged">
                    </asp:DropDownList><br />
    		        <asp:TextBox ID="tbRespPrenNom" runat="server" Text="defaut" Visible="true"></asp:TextBox>
    		        <asp:TextBox ID="tbRespId" runat="server" Text="defaut" Visible="true"></asp:TextBox>
    	        </contenttemplate>
            </asp:UpdatePanel>
            <asp:TextBox ID="tbLblRespId" runat="server" Text="defaut" Visible="true"></asp:TextBox><br />
            <asp:TextBox ID="tbLblIdRespPrenNom" runat="server" Text="defaut" Visible="true"></asp:TextBox><br />
        </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      protected void ChargerBatiment()
        {
     
            // init de la fenêtre modale Changement de localisation
            Ot_Collection<Od_Batiment> ods_batimentsNew = Om_Batiment.SelectBatimentParUnDepartement(wuc_filtre_hierarchie.Code_Departement);
            //ods_batimentsNew.Insert(0, new Od_Batiment("", "Sélectionner une valeur"));
            DlNewBatiment.DataSource = ods_batimentsNew;
            DlNewBatiment.DataBind();
        }
    Mais lorsque je change la valeur de ma ddl, celle-ci se retrouve vidée.
    Ma ddl est dans un update manager comment laisse voir le code en rouge.


    Merci

    nath

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Je vois pas trop l'intérêt de la fonction javascript. Je ne comprend pas pourquoi tu écris ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function ShowMyModalPopupLoc(p_LblLocBatId,p_LblLocEtgId,p_LblLocId) 
    { 
    	<%ChargerBatiment();%>
    }
    Appeler la fonction "ChargerBatiment()" ne va rien donner car elle s’exécute sur le serveur et non le client.

    Voici un exemple qui peut te servir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server"  Text="Label"></asp:Label>
            <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="Email" DataValueField="ID"
                OnDataBinding="DropDownList1_DataBinding" 
                onselectedindexchanged="DropDownList1_SelectedIndexChanged" 
                AutoPostBack="True">
            </asp:DropDownList>
        </ContentTemplate>
    </asp:UpdatePanel>
    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
    public partial class _Default : System.Web.UI.Page
    {
        public class MyData
        {
            public string Email { get; set; }
            public string ID { get; set; }
        }
     
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataBind();
            }
        }
     
        protected void DropDownList1_DataBinding(object sender, EventArgs e)
        {
            var ddl = sender as DropDownList;
            var source = new List<MyData>();
            source.Add(new MyData() { Email = "Choisissez", ID = "0" });
            source.Add(new MyData() { Email = "a@a.fr", ID = "1" });
            source.Add(new MyData() { Email = "b@b.fr", ID = "2" });
            ddl.DataSource = source;
        }
     
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var ddl = sender as DropDownList;
            Label1.Text = ddl.SelectedItem.Text;
        }
    }
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. [XL-2010] Liste déroulante vide après envoi fichier
    Par besnielk dans le forum Excel
    Réponses: 2
    Dernier message: 12/06/2012, 20h36
  2. [AC-2007] Requête vide si Champ liste déroulante vide, pourquoi?
    Par Crachover dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/03/2010, 10h06
  3. Réponses: 7
    Dernier message: 13/10/2009, 20h06
  4. Réponses: 2
    Dernier message: 19/06/2009, 14h37
  5. [PostBack] Avoir le formulaire vide après postback ?
    Par dymezac dans le forum ASP.NET
    Réponses: 20
    Dernier message: 05/10/2007, 11h38

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