Bonjour,

J'ai un petit problème

Il est lié à un post précédent : http://www.developpez.net/forums/d98...le-rows-count/

Voici le code aujourd'hui :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
  <div class="P_SaisieC">
                            <asp:Table ID="Tab_CS" runat="server" CssClass="Centre_AspTable" >
                                <asp:TableRow>
                                    <asp:TableCell><asp:Label ID="LB_CS_det" runat="server" Text="Contrat de service" width="130" CssClass="REP_Titre"></asp:Label></asp:TableCell>  
                                    <asp:TableCell><asp:Label ID="LB_val" runat="server" Text="Valeur Accordée" width="130" CssClass="REP_Titre"></asp:Label></asp:TableCell> 
                                    <asp:TableCell><asp:Label ID="Label3" runat="server" Text="Périodicité" width="130" CssClass="REP_Titre"></asp:Label></asp:TableCell> 
                                    <asp:TableCell><asp:Label ID="Label7" runat="server" Text="Mode de Facturation" width="130" CssClass="REP_Titre"></asp:Label></asp:TableCell> 
                                    <asp:TableCell><asp:Label ID="Label8" runat="server" Text="Mode de règlement" width="130" CssClass="REP_Titre"></asp:Label></asp:TableCell>
                                </asp:TableRow>
                            </asp:Table>
                         </div>
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
protected void Page_Load(object sender, EventArgs e)
        {
        []    
                if (IsPostBack == false)
                {
                    if (Request["type"] == "CLOC")
                    {
                        []
 
                        if (test)
                            Tab_CS.Visible = true;
                        else
                            Tab_CS.Visible = false;
 
                    }
 
                    Session["TEMPO"] = null;
                }
                else
                {
                    if (Session["TEMPO"] != null)
                    {
                        bool isfirst = true;
                        foreach (TableRow _row in (TableRowCollection)Session["TEMPO"])
                        {
                            if (!isfirst)
                                Tab_CS.Rows.Add(_row);
                            else
                                isfirst = false;
                        }
                    }
                }
            }
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
 public void VALID_CESS(object sender, RepeaterCommandEventArgs e)
        {
            RepeaterItem _ligne = e.Item;
 
            TextBox _TB_CS = (TextBox)_ligne.FindControl("TB_CS");
            CheckBox _CHB_CessionOK = (CheckBox)_ligne.FindControl("CHB_CessionOK");
            HiddenField _HF_id = (HiddenField)_ligne.FindControl("HF_id");
 
            CL_CS _cs = new CL_CS(int.Parse(_HF_id.Value),_TB_CS.Text);
            _cs.LISTER_TERMESFACT();
            _cs.RECUP_LISTE_MODREGL();
            _cs.LISTER_PERIODICITES();
 
            if (_CHB_CessionOK.Checked)
            {
                Tab_CS.Rows.Add(new TableRow());
 
                //Nom
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells.Add(new TableCell());
                Label _lb = new Label();
                _lb.Text = _TB_CS.Text;
                _lb.CssClass = "REP_ContenuC_spe_G2";
                _lb.ID = "LB_" + _TB_CS.Text;                
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells[0].Controls.Add(_lb);
 
                // Valeur
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells.Add(new TableCell());
                TextBox _tb = new TextBox();
                _tb.CssClass = "REP_ContenuC_spe_G2";
                _tb.ID = "TB_val_" + _TB_CS.Text;
                _tb.AutoPostBack = true;
                _tb.TextChanged += EVENT_ITM;
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells[1].Controls.Add(_tb);
 
                //  Periodicité
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells.Add(new TableCell());
                ListBox _lst_per = new ListBox();
                _lst_per.CssClass = "REP_ContenuC_spe_G2";
                _lst_per.Rows = 1;
                _lst_per.DataSource = _cs.lesPeriodicites;
                _lst_per.DataTextField = "nomperiod";
                _lst_per.DataValueField = "idPeriod";
                _lst_per.DataBind();
                if(_lst_per.Items.Count == 0)
                    _lst_per.Items.Insert(0, "Aucun");
                else
                    _lst_per.Items.Insert(0, "");
 
                _lst_per.ID = "LST_period_" + _TB_CS.Text;
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells[2].Controls.Add(_lst_per);
 
 
                // Mode de facturation
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells.Add(new TableCell());
                ListBox _lst_mod = new ListBox();
                _lst_mod.CssClass = "REP_ContenuC_spe_G2";
                _lst_mod.Rows = 1;
                _lst_mod.DataSource = _cs.lesTermesFact;
                _lst_mod.DataTextField = "termfac";
                _lst_mod.DataValueField = "idtermefact";
                _lst_mod.DataBind();
                if (_lst_mod.Items.Count == 0)
                    _lst_mod.Items.Insert(0, "Aucun");
                else
                    _lst_mod.Items.Insert(0, "");
                _lst_mod.ID = "LST_mod_" + _TB_CS.Text;
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells[3].Controls.Add(_lst_mod);
 
                // Mode reglement
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells.Add(new TableCell());
                ListBox _lst_rgl = new ListBox();
                _lst_rgl.CssClass = "REP_ContenuC_spe_G2";
                _lst_rgl.Rows = 1;
                _lst_rgl.DataSource = _cs.lesModRegl;
                _lst_rgl.DataTextField = "nom";
                _lst_rgl.DataValueField = "idmod";
                _lst_rgl.DataBind();
                if (_lst_rgl.Items.Count == 0)
                    _lst_rgl.Items.Insert(0, "Aucun");
                else
                    _lst_rgl.Items.Insert(0, "");
                _lst_rgl.ID = "LST_regl_" + _TB_CS.Text;
                Tab_CS.Rows[Tab_CS.Rows.Count - 1].Cells[4].Controls.Add(_lst_rgl);
 
                Tab_CS.Visible = true;
                Session["TEMPO"] = Tab_CS.Rows;
            }
 
        }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
  protected void EVENT_ITM(object sender, EventArgs e)
        {
            [...]
            SAVE(control,value);
        }
 
        #endregion
Voila mon problème maintenant c'est qu'il y à des postback dans tout les sens et je suis perdu, je ne sais plus trop comment faire. Vous l'avez compris je veux sauvegarder les valeur de chaque control contenu dans la table.

PS : Seul la TB est codé pour le moment c'est normal ^^

Si vous avez une idée cela m'aiderai grandement.