Bonjour à tous,
N'hésitez pas à déplacer ce message si il n'est pas à sa place.
Après m'être arraché les cheveux pendant une demi-journée à trouver l'erreur (je suis débutant), je préfère poster ici en espérant avoir une réponse.
Ca marche sous Firefox, mais pas sous IE, j'obtiens cette erreur:
Voici mon code returnform2.aspx:Argument de publication ou de rappel non valide. La validation d'événement est activée via <pages enableEventValidation="true"/> dans la configuration ou via <%@ Page EnableEventValidation="true" %> dans une page. Pour des raisons de sécurité, cette fonctionnalité vérifie si les arguments des événements de publication ou de rappel proviennent du contrôle serveur qui les a rendus à l'origine. Si les données sont valides et attendues, utilisez la méthode ClientScriptManager.RegisterForEventValidation afin d'inscrire les données de publication ou de rappel pour la validation.
Voici mon code returnform2.aspx.cs:
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 <%@ Page Title="" Language="C#" MasterPageFile="~/Front_Style.master" AutoEventWireup="true" CodeFile="ReturnForm2.aspx.cs" Inherits="ReturnForm2" EnableEventValidation="true" %> <asp:Content ID="Content1" ContentPlaceHolderID="uxPlaceHolder" runat="Server"> <div class="MainDivLarge"> <h1> Formulaire de retour</h1> <form id="Form1" name ="Form1" method="post" action=""> <table id="Tab1" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-left-color: fuchsia; border-bottom-color: fuchsia; border-top-style: none; border-top-color: fuchsia; border-right-style: none; border-left-style: none; border-right-color: fuchsia; border-bottom-style: none;"> <tr> <td align="center"> <h3> Mode de retour : </h3> </td> <td> <asp:DropDownList ID="ddpReturnType" runat="server" OnLoad="ComboBoxReturnTypeLoad" OnSelectedIndexChanged="ddpReturnType_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> </table> <asp:Repeater ID="RPT_Products" runat="server"> <HeaderTemplate> <table id="Tab2" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-left-color: fuchsia; border-bottom-color: fuchsia; border-top-style: none; border-top-color: fuchsia; border-right-style: none; border-left-style: none; border-right-color: fuchsia; border-bottom-style: none;"> <tr style="height: 20px;" class="GridHeadStyle"> <th valign="middle" align="center" style="width: 100px;"> Type Carte </th> <th valign="middle" align="center" style="width: 100px;"> Gencode </th> <th valign="middle" align="center" style="width: 100px;"> Produit </th> <th valign="middle" align="center" style="width: 50px;"> Quantité </th> </tr> </HeaderTemplate> <ItemTemplate> <tr style="height: 20px;" class="GridAlternatingRowStyle"> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lProductKind" Text='<%# Eval("ProductType") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lGencode" Text='<%# Eval("GC_gencode") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lProduct" Text='<%# Eval("ProductName") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:TextBox ID="tbQte" Text="0" runat="server" Width="50px" MaxLength="4" BackColor="#dcdcdc" OnTextChanged="ChangeTotal" AutoPostBack="true" /> <asp:RegularExpressionValidator runat="server" ID="rexQte" ControlToValidate="tbQte" ValidationExpression="\d+" ErrorMessage=" !!!" /> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> <AlternatingItemTemplate> <tr style="height: 20px;" class="GridRowStyle"> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lProductKind" Text='<%# Eval("ProductType") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lGencode" Text='<%# Eval("GC_gencode") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:Label ID="lProduct" Text='<%# Eval("ProductName") %>' runat="server"> </asp:Label> </td> <td valign="middle" align="center" style="width: 100px;"> <asp:TextBox ID="tbQte" Text="0" runat="server" Width="50px" MaxLength="4" BackColor="White" OnTextChanged="ChangeTotal" AutoPostBack="true" /> <asp:RegularExpressionValidator runat="server" ID="rexQte" ControlToValidate="tbQte" ValidationExpression="\d+" ErrorMessage=" !!!" /> </td> </tr> </AlternatingItemTemplate> </asp:Repeater> <table id="Tab3" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-left-color: fuchsia; border-bottom-color: fuchsia; border-top-style: none; border-top-color: fuchsia; border-right-style: none; border-left-style: none; border-right-color: fuchsia; border-bottom-style: none;"> <tr> <td> </td> </tr> <tr> <td align="center"> <h5> Nb Total Cartes :</h5> </td> <td> <asp:Label ID="lTotal" runat="server" Text="0" /> </td> </tr> <tr> <td align="center"> <h3> Raison : </h3> </td> <td valign="middle" align="center" style="width: 100px;" colspan="4"> <asp:TextBox ID="tbReason" runat="server" TextMode="MultiLine" MaxLength="100" Width="90%" /> <br /> <asp:RegularExpressionValidator runat="server" ID="rexReason" ControlToValidate="tbReason" ValidationExpression="^[^\0]{0,200}$" ErrorMessage="Max 200 chars" /> </td> </tr> </table> <br /> <asp:Button ID="BtnConfirm" Text="Envoyer" runat="server" OnClick="ConfirmFrom" /> <br /> </form> </div> </asp:Content>
Si je met EnableEventValidation="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
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 using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using Vevo.DataAccessLib; using System.Collections; public partial class ReturnForm2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { string exec = "exec GC_WEB_Get_ProductList"; DataTable dtTest; dtTest = DataAccess.ExecuteSelect(exec); RPT_Products.DataSource = dtTest; RPT_Products.DataBind(); } } protected void ComboBoxReturnTypeLoad(object sender, EventArgs e) { if (!Page.IsPostBack) { string exec = "exec GC_WEB_Get_ReturnType"; DataTable dtTest; dtTest = DataAccess.ExecuteSelect(exec); ddpReturnType.DataSource = dtTest; ddpReturnType.DataValueField = "ReturnType"; ddpReturnType.DataTextField = "ReturnType"; ddpReturnType.DataBind(); } } protected void ConfirmFrom(object sender, EventArgs e) { if (Page.IsValid) { List<String> listGencode = new List<String>(); List<int> listQte = new List<int>(); ArrayList myList = new ArrayList(); // Récupération des datas for (int i = 0; i < RPT_Products.Items.Count; i++) { Label lGencode = null; TextBox tbQte = null; lGencode = (Label)RPT_Products.Items[i].FindControl("lGencode"); tbQte = (TextBox)RPT_Products.Items[i].FindControl("tbQte"); if (lGencode != null && tbQte != null) { try { if (Convert.ToInt32(tbQte.Text.ToString()) > 0) { listGencode.Add(lGencode.Text); listQte.Add(Convert.ToInt32(tbQte.Text.ToString())); } } catch (Exception) { } } } // On ajoute à l'arraylist if (listGencode.Count > 0 && listQte.Count == listGencode.Count) { myList.Add(listGencode); myList.Add(listQte); if (ViewState["choice"] != null) { myList.Add(ViewState["choice"]); } else { myList.Add(ddpReturnType.SelectedValue); } myList.Add(lTotal.Text); if (tbReason.Text.Length > 0) { myList.Add(tbReason.Text); } // On met ça en session Session["returnform"] = myList; // On bouge Response.Redirect("ReturnForm_Conf.aspx"); } } else { Response.Write("<script>window.alert('Veuillez vérifier les saisies.')</script>"); } } protected void ddpReturnType_SelectedIndexChanged(object sender, EventArgs e) { ViewState["choice"] = ddpReturnType.SelectedValue; } protected void ChangeTotal(object sender, EventArgs e) { int total = 0; for (int i = 0; i < RPT_Products.Items.Count; i++) { try { total += Convert.ToInt32(((TextBox)RPT_Products.Items[i].FindControl("tbQte")).Text.ToString()); } catch (Exception) { } } lTotal.Text = total.ToString(); } }
, IE ne me génère plus l'erreur mais le calcul du total des cartes n'est plus effectué...
merci de m'aider
Partager