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 :

Sauvegarder les controles créer manuellement


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut Sauvegarder les controles créer manuellement
    Bonjour

    Je crée des contrôles via du code C# mais hélas a chaque postback, ces contrôles disparaissent ... Comment faire pour qu'il soit toujours la entre les postback ?

    Voici un exemple de code :

    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
    public partial class Default3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Label label = new Label();
            label.Text = "Hello World";
            Panel1.Controls.Add(label);
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Label1.Text = "Hello world";
        }
    }


    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
     
    <%@ Register Assembly="Anthem" Namespace="Anthem" TagPrefix="anthem" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel ID="Panel1" runat="server">
            </asp:Panel>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            <asp:Button ID="Button2" runat="server" onclick="Button2_Click" text="Button2"></asp:Button>
            <asp:Label ID="Label1" runat="server"></asp:Label>
        </div>
        </form>
    </body>
    </html>
    Quand je clic sur le premier bouton mon label est bien créé et ajouté dans le panel mais quand je clic sur l autre il disparaît ...

    Merci de votre aide

  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
    le plus simple pour toi serait ded faire qqchsoe comme ca pour conserver l'historique des actions qui ont pu avoir sur ta page , il y a surement mieux mais ca pourrait te dépanner deja avant que les grands esprits ne se concertent sur ta question :

    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
    protected override void OnPreInit(EventArgs e)
        {
            if (Request.Form["Button1Clic"]=="true")
            {
                Label label = new Label();
                label.Text = "Hello World";
                Panel1.Controls.Add(label);
            }
            base.OnPreInit(e);
        }
     
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button1Clic.Value = "true";
            Label label = new Label();
            label.Text = "Hello World";
            Panel1.Controls.Add(label);
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Label1.Text = "Hello world";
        }


    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
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
        <form id="form1" runat="server" method=post>
        <div>
            <asp:Panel ID="Panel1" runat="server" >
            </asp:Panel>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            <input type="hidden" ID="Button1Clic" runat="server" />
            <asp:Button ID="Button2" runat="server" onclick="Button2_Click" text="Button2"></asp:Button>
            <asp:Label ID="Label1" runat="server"></asp:Label>
        </div>
        </form>
    </body>
    </html>

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Oula c'est pas super simple tout ça (enfin élégant)

    Y a pas un moyen de conserver ca dans un viewstate like coté serveur ?

  4. #4
    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
    c'est un peu l'idée en fait de mettre ca dans un viewstate ou un listdictionnary dans un objet session... je crois que c'est le mieux.. mais je preferais attendre qu'un expert en dot net propose une solution de cet acabit... Parce que il y a surement mieux

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    oki merci tout de même

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2015, 23h00
  2. [CakePHP] sauvegarder les données d'un autre Controller
    Par laSista dans le forum Bibliothèques et frameworks
    Réponses: 35
    Dernier message: 24/09/2014, 20h24
  3. comment sauvegarder les controles ajoutés dynamiquement?
    Par Chrysostome dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 04/04/2013, 12h17
  4. Créer un [Event procédure] sur tous les controles.
    Par SeaWolf601 dans le forum IHM
    Réponses: 9
    Dernier message: 21/01/2009, 15h22
  5. Comment sauvegarder les messages de Outlook express ?
    Par tarbala dans le forum Outlook Express / Windows Mail
    Réponses: 5
    Dernier message: 06/08/2004, 17h31

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