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 :

postback asp net


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Points : 206
    Points
    206
    Par défaut postback asp net
    Bonjour,

    Je pense ne pas avoir saisie tout correctement concernant certains points d'asp.net.

    Imaginons que je crée un form contenant une table cote asp.
    Cote code behind (c# dans mon cas), j'ajoute des éléments de formulaires dans ma table (inputs, ...) ainsi qu'un bouton pour envoyer auquel je lie la méthode "make_envoi". Bien noter que ces éléments NE SONT PAS du cote asp.

    Lors du clic sur ce bouton de validation, j'entre donc dans ma méthode "make_envoi". Dans celle-ci, je souhaiterai récupérer un objet de type table avec tous les inputs que j'avais mis dedans lors de la création du formulaire précédemment, et avec ces inputs ayant les valeurs tapées dans le formulaire juste avant le clique sur le bouton.

    Est-il possible de récupérer un objet de ce type (le viewstate ne sert-il pas a cela?) ou suis-je oblige de recréer ma table en y insérant tous me inputs? (et donc récupérer toutes les variables reçues en POST et les assigner aux inputs).

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    soisplus precis

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Points : 206
    Points
    206
    Par défaut
    code asp.net:
    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
     <form id="form1" runat="server">
        <div>
        <h3> TEEEEEEEEEEEESSSSSSSSSSSSSSSSSST</h3>
     
          <asp:Table id="TBLForm" 
               runat="server">
               <asp:TableFooterRow ID="TableFooterRow1" runat="server">
                    <asp:TableCell ID="TableCell1"  ColumnSpan="3" runat="server">
                        <asp:Button ID="btnSave" OnClick="btnSave_clic" Text="Valider les modifications" runat="server"/>
                        <asp:Button ID="Button1" OnClick="btnSave_clic" Text="Valider les modifications" runat="server"/>
                        <asp:Button ID="Button2" OnClick="btnSave_clic" Text="Valider les modifications" runat="server"/>
                    </asp:TableCell>
               </asp:TableFooterRow>
          </asp:Table>
               <asp:Label ID="toto" runat="server"/>
        </div>
        </form>
    code c# (le plus utile)
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    private ArrayList buildArrayDays(currentsInfo datesInfo) //cree un arraylist avec toutes les demi journees du mois
            {
                ArrayList days = new ArrayList();
                halfDay hDay;
                for (int count = 0; count < datesInfo.monthLen; count++)
                {
                    hDay = new halfDay();
                    hDay.dayNb = count + 1;
                    hDay.dayType = (datesInfo.firstDayType + hDay.dayNb) % 7;
                    hDay.period = halfDay.Period.am;
                    days.Add(hDay);
                    hDay = new halfDay(hDay);
                    hDay.period = halfDay.Period.pm;
                    days.Add(hDay);
                }
                return (days);
            }
     
            protected void loadForm() //construit le tableau du formulaire a partir des objets de demi journees
            {
                currentsInfo datesInfo = new currentsInfo();
                ArrayList days = buildArrayDays(datesInfo);
                int listLen = days.Count;
                TableRow line;
                TableCell cell;
                DropDownList ddl;
                CheckBox ChB;
                HtmlButton btn;
     
                TBLForm.BorderWidth = 2;
                TBLForm.CellSpacing = 0;
                for (int count = 0; count < listLen; count++) //ajoute chaque lignes
                {
                    line = new TableRow();
                    /**/
                    line.ID = "ligne" + count;
                    if (!(((halfDay)days[count]).isWorked()))//set les couleurs de fond des lignes selon types de jours
                        line.BackColor = System.Drawing.Color.Gray;
                    else if ((count % 2) != 1)
                        line.BackColor = System.Drawing.Color.Yellow;
                    else
                        line.BackColor = System.Drawing.Color.YellowGreen;
     
                    cell = new TableCell(); // ajoute le numero du jour
                    cell.Controls.Add(new LiteralControl(((halfDay)days[count]).dayNb.ToString()));
                    line.Cells.Add(cell);
     
                    cell = new TableCell();// ajoute am/pm
                    cell.Controls.Add(new LiteralControl(((halfDay)days[count]).getPeriod()));
                    line.Cells.Add(cell);
     
                    cell = new TableCell();// ajoute lla check-box
                    ChB = new CheckBox();
                    if ((((halfDay)days[count]).isWorked()))
                        ChB.Checked = true; // les jours ouvres sont coches par defaut (voir specs)
                    cell.Controls.Add(ChB);
                    line.Cells.Add(cell);
     
                    cell = new TableCell();// ajoute la drop down list des clients
                    ddl = new DropDownList();
                    cell.Controls.Add(ddl);
                    line.Cells.Add(cell);
     
                    cell = new TableCell();// ajoute la drop down list des projets
                    ddl = new DropDownList();
                    cell.Controls.Add(ddl);
                    line.Cells.Add(cell);
     
                    cell = new TableCell();// ajoute l'input de saisie libre
                    cell.Width = 150;
                    cell.Controls.Add(new HtmlInputText());
                    line.Cells.Add(cell);
     
                    TBLForm.Rows.Add(line);
                }
     
                /*  line = new TableRow();//ajout d'une ligne avec le bouton de validation des modifications
                  cell = new TableCell();
                  cell.ColumnSpan = 6;
                  btn = new HtmlButton();
                  btn.InnerText = "Valider les modifications";
                  cell.Controls.Add(btn);
                  line.Cells.Add(cell);
                  TBLForm.Rows.Add(line);*/
     
            }
     
            public void btnSave_clic(object sender, EventArgs e)
            {
                //   toto.Text = TBLForm.Rows[0].Cells[0].Controls[0].GetType().ToString();
                //            toto.Text = TBLForm.Controls.Count.ToString();
                toto.Text = TBLForm.Attributes.Count.ToString();
            }
     
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack) // si premier affichage de la page, il faut builder le formulaire
                {
                    loadForm();
                    toto.Text = TBLForm.Controls.Count.ToString();
                }
            }
        }
    En gros, quand je clique sur le bouton, je voudrais récupérer l'objet table comme je l'avais créé avant l'affichage, et avec les données tapées dans le formulaire. (comme ça, je peux sauvegarder les données en bdd par exemple, et reafficher le formulaire avec les champs pré-remplis, sans avoir a refaire un SELECT * dans ma BDD).


    NB: si les inputs sont en dur dans l'ASP, il n'y a pas de problème, mon formulaire reste identique et le champs sont bien remplis.

Discussions similaires

  1. Postback dans ModalPopupExtender [ASP.NET 2.0][C#]
    Par chti_vince dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/05/2009, 12h56
  2. Réponses: 12
    Dernier message: 12/07/2007, 18h07
  3. [ASP.NET][C#] Trouver l'objet causant le postback
    Par morpheus002 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 27/06/2007, 18h20
  4. Réponses: 1
    Dernier message: 13/03/2007, 16h23
  5. [ASP.NET] Server.Execute et les PostBack
    Par Fondateur0426 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/02/2007, 14h37

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