Bonjour,
J'utilise un UpdatePanel et un Triggers sur un bouton en mode asyncPostBack
Lors de l'appel de la méthode "fill_form()" mon formulaire est bien rempli.
Mais par la suite si je modifie les données du formulaire et que je le valide. La méthode "desc_add_edit()" est appelée et exécute une procédure embarquée qui va mettre les données a jours dans la DB. Mais les données sont celle attribuée par la méthode fill_form et non celle modifie.
La méthode s'exécute correctement mais avec les valeurs non modifiée du formulaire.
Le problème doit se situer dans le Page_Load();
Pourquoi lors du clic de mon bouton il ne passe pas directement dans la méthode appelée ?
code la page aspx
codebehind de la page
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165 <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Props_Seminaire.aspx.cs" Inherits="Gestion_Seminaire_Props_Seminaire" Title="Propositions de séminaire" %> <%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Corps" Runat="Server"> <asp:Panel ID="centre_page" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="boutton_form" /> </Triggers> <ContentTemplate> <asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet"></asp:SqlDataSource> <br /><br /> <table> <tr id="cell_domaine" runat="server"> <td > Domaine de la formation <asp:TextBox ID="sem_domaine" runat="server" MaxLength="200" Width="80%"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Domaine" runat="server" ErrorMessage="Domaine Requis" ControlToValidate="sem_domaine"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_niveau" runat="server"> <td> Niveau <asp:DropDownList ID="sem_niveau" runat="server" CausesValidation="false"> </asp:DropDownList> </td> </tr> <tr id="cell_libelle" runat="server"> <td> Titre Formation (en quelques mots) Soyez créatifs..<br /><br /> <asp:TextBox ID="sem_libelle" runat="server" MaxLength="200" ></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Libelle" runat="server" ErrorMessage="Titre Requis" ControlToValidate="sem_libelle"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_interet" runat="server"> <td> Intérêts du sujet (besoin, demande, actualité, ...) A développer...<br /><br /> <asp:TextBox ID="sem_interet" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Interet" runat="server" ControlToValidate="sem_interet" ErrorMessage="Intérêts requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_objectif" runat="server"> <td> Le(s) objectif(s) de la formation (l'objectif poursuivi; l'intérêt de la formation)<br /><br /> <asp:TextBox ID="sem_objectif" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Objectif" runat="server" ControlToValidate="sem_objectif" ErrorMessage="Objectis Requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_competence_acquise" runat="server"> <td> Compétences acquises à l'issue de la formation (les apports concrets de la formation)<br /><br /> <asp:TextBox ID="sem_competence_acquise" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Competence_Acquise" runat="server" ControlToValidate="sem_competence_acquise" ErrorMessage="Comptétences requise"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_contenu" runat="server"> <td> Contenu de la formation (présenter la matière qui sera vue; ce qu'on va apprendre)<br /><br /> <asp:TextBox ID="sem_contenu" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Contenu" runat="server" ControlToValidate="sem_contenu" ErrorMessage="Contenu requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_public" runat="server"> <td> Le public visé (tous les publics ou davantage orienté vers une fonction ou un métier de l'entreprise)<br /><br /> <asp:TextBox ID="sem_public" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Public" runat="server" ControlToValidate="sem_public" ErrorMessage="Public requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_duree" runat="server"> <td> Durée (nombre d'heures + répartition)<br /> <asp:TextBox ID="sem_duree" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Duree" runat="server" ErrorMessage="Durée Requise" ControlToValidate="sem_duree"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_pre_requis" runat="server"> <td> Pré-requis (oui ou non, et si oui, lesquels ?)<br /><br /> <asp:TextBox ID="sem_pre_requis" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Pre_Requis" runat="server" ControlToValidate="sem_pre_requis" ErrorMessage="Pré-requis requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_formateur" runat="server"> <td> Le(s) formateur(s) (présentation en quelques lignes + le CV complet actualisé)<br /><br /> <asp:TextBox ID="sem_formateur" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Formateur" runat="server" ControlToValidate="sem_formateur" ErrorMessage="Formateur requis"></asp:RequiredFieldValidator> </td> </tr> <tr id="cell_agenda" runat="server"> <td> L'agenda (proposition de date(s) pour le séminaire) <br /><br /> <asp:TextBox ID="sem_agenda" runat="server" TextMode="MultiLine"></asp:TextBox> <asp:RequiredFieldValidator ID="Required_Agenda" runat="server" ControlToValidate="sem_agenda" ErrorMessage="Agenda requis"></asp:RequiredFieldValidator> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="BulletList" /> <br /><br /> <center><asp:Button ID="boutton_form" runat="server" Text="Ajouter" /></center> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> </asp:Content>
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162 using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.Sql; using System.Data.SqlClient; public partial class Gestion_Seminaire_Props_Seminaire : System.Web.UI.Page { protected String query; SqlDataReader reader; SqlCommand cmd = new SqlCommand(); protected static Connection cnx = new Connection(); int id_sem; protected void Page_Load(object sender, EventArgs e) { String mode = Request["mode"]; switch (mode) { case "add": define_add_edit_rulz(); boutton_form.Text = "Ajouter"; boutton_form.Click += new EventHandler(desc_add_edit); id_sem = int.Parse(Request["id"]); break; case "edit": define_add_edit_rulz(); boutton_form.Text = "Modifier"; boutton_form.Click += new EventHandler(desc_add_edit); id_sem = int.Parse(Request["id"]); fill_form(id_sem,"seminaire"); break; case "cons": define_read_only(); id_sem = int.Parse(Request["id"]); //fill_form(id_sem,"vue_prop_sem"); break; default: centre_page.Visible = false; break; } } protected void define_add_edit_rulz() { //défini la visibilité des éléments du formulaire. cell_domaine.Visible = false; cell_libelle.Visible = false; cell_niveau.Visible = false; cell_formateur.Visible = false; cell_agenda.Visible = false; cell_duree.Visible = false; //défini les restrictions au niveau des RequiredFieldValidator //RequiredFieldValidator sont désactiver Required_Domaine.Enabled = false; Required_Libelle.Enabled = false; Required_Duree.Enabled = false; Required_Formateur.Enabled = false; Required_Agenda.Enabled = false; } protected void define_read_only() { sem_domaine.ReadOnly = true; sem_libelle.ReadOnly = true; sem_interet.ReadOnly = true; sem_objectif.ReadOnly = true; sem_competence_acquise.ReadOnly = true; sem_contenu.ReadOnly = true; sem_public.ReadOnly = true; sem_duree.ReadOnly = true; sem_pre_requis.ReadOnly = true; sem_duree.ReadOnly = true; sem_pre_requis.ReadOnly = true; sem_formateur.ReadOnly = true; sem_agenda.ReadOnly = true; boutton_form.Enabled = false; boutton_form.Visible = false; } protected void desc_add_edit(object sender, EventArgs e) { SqlConnection cnx = (SqlConnection)Session["oConnection"]; cmd = new SqlCommand("description_sem_upd", cnx); cmd.Parameters.Add("@sem_interet", SqlDbType.VarChar).Value = sem_interet.Text; cmd.Parameters.Add("@sem_objectif", SqlDbType.VarChar).Value = sem_objectif.Text; cmd.Parameters.Add("@sem_competence_acquise", SqlDbType.VarChar).Value = sem_competence_acquise.Text; cmd.Parameters.Add("@sem_contenu", SqlDbType.VarChar).Value = sem_contenu.Text; cmd.Parameters.Add("@sem_public", SqlDbType.VarChar).Value = sem_public.Text; cmd.Parameters.Add("@sem_pre_requis", SqlDbType.VarChar).Value = sem_pre_requis.Text; cmd.Parameters.Add("@sem_code", SqlDbType.Int).Value = id_sem; cmd.CommandType = CommandType.StoredProcedure; cmd.ExecuteNonQuery(); } protected void fill_form(int id_sem, string table) { SqlConnection cnx = (SqlConnection)Session["oConnection"]; query = "SELECT sem_objectif, sem_contenu, sem_interet, sem_competence_acquise, sem_pre_requis, sem_public FROM "+table+" WHERE sem_code = " + id_sem + ";"; cmd = new SqlCommand(query, cnx); reader = cmd.ExecuteReader(); reader.Read(); sem_objectif.Text = reader["sem_objectif"].ToString(); sem_contenu.Text = reader["sem_contenu"].ToString(); sem_interet.Text = reader["sem_interet"].ToString(); sem_competence_acquise.Text = reader["sem_competence_acquise"].ToString(); sem_pre_requis.Text = reader["sem_pre_requis"].ToString(); sem_public.Text = reader["sem_public"].ToString(); //liesem_code.SelectedIndex = int.Parse(reader["liesem_code"].ToString()); reader.Close(); query = ""; } }
Partager