Argomento di postback o callback non valido quando si scatena l'evento...

lunedì 16 ottobre 2017 - 16.02
Tag Elenco Tags  .NET 4.0  |  Visual Studio Express

erizzi Profilo | Newbie

Buongiorno,
Sto lavorando su una gridview in asp.net,gestendo gli eventi di editing, deleting, cancelediting non ho problemi, ma quando cerco di modificare una riga l'evento rowupdating non si verifica (non entra nel metodo che gestisce l'evento) e mi esce un messaggio di errore come il seguente:
"Argomento di postback o callback non valido. La convalida degli eventi viene abilitata mediante <pages enableEventValidation="true"/> nella configurazione oppure mediante <%@ Page EnableEventValidation="true" %> in una pagina. Per motivi di sicurezza, viene verificato che gli argomenti con cui eseguire il postback o il callback di eventi siano originati dal controllo server che ne aveva inizialmente eseguito il rendering. Se i dati sono validi e previsti, utilizzare il metodo ClientScriptManager.RegisterForEventValidation per registrare i dati di postback o callback per la convalida"

La grid view è definita in questo modo:
<asp:GridView CssClass="table table-bordered table-hover" runat="server" ID="grvApparati" DataKeyNames="ID" AutoGenerateColumns="false" OnRowEditing="grvApparati_RowEditing" OnRowUpdating="grvApparati_RowUpdating" OnRowDeleting="grvApparati_RowDeleting" OnRowCancelingEdit="grvApparati_RowCancelingEdit">
<Columns>
<asp:CommandField ButtonType="Image" ShowEditButton="True" EditImageUrl="~/Images/edit.png" CancelImageUrl="~/Images/cancel.png" UpdateImageUrl="~/Images/update.png" ></asp:CommandField>
<asp:CommandField ButtonType="Image" ShowDeleteButton="true" DeleteImageUrl="~/Images/delete.png" />

<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" ReadOnly="true"/>
<asp:BoundField DataField="c1" HeaderText="Tipo" SortExpression="Tipo" />
<asp:BoundField DataField="c2" HeaderText="Modello" SortExpression="Modello" />
<asp:BoundField DataField="c3" HeaderText="Descrizione" SortExpression="Descrizione" />
<asp:BoundField DataField="c4" HeaderText="IP Lan" SortExpression="IP Lan" />
<asp:BoundField DataField="c5" HeaderText="IP Pubblico" SortExpression="IP Pubblico" />
<asp:BoundField DataField="c6" HeaderText="Porta" SortExpression="Porta" />
<asp:BoundField DataField="c7" HeaderText="Rete Ass." SortExpression="Rete Ass." />
<asp:BoundField DataField="c8" HeaderText="User" SortExpression="User" />
<asp:BoundField DataField="c9" HeaderText="Password" SortExpression="Password"/>
<asp:BoundField DataField="c10" HeaderText="IP 1" SortExpression="IP 1" />
<asp:BoundField DataField="c11" HeaderText="IP 2" SortExpression="IP 2" />
<asp:BoundField DataField="c12" HeaderText="Wan 1" SortExpression="Wan 1" />
<asp:BoundField DataField="c13" HeaderText="Wan 2" SortExpression="Wan 2" />
<asp:BoundField DataField="c14" HeaderText="Wan 3" SortExpression="Wan 3" />
</Columns>
</asp:GridView>

il code behind:
protected void grvApparati_RowEditing(object sender, GridViewEditEventArgs e)
{
grvApparati.EditIndex = e.NewEditIndex;
}

protected void grvApparati_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(grvApparati.DataKeys[e.RowIndex].Value.ToString());
GridViewRow row = (GridViewRow)grvApparati.Rows[e.RowIndex];
TextBox c1 = (TextBox)row.Cells[1].Controls[0];
TextBox c2 = (TextBox)row.Cells[2].Controls[0];
TextBox c3 = (TextBox)row.Cells[3].Controls[0];
TextBox c4 = (TextBox)row.Cells[4].Controls[0];
TextBox c5 = (TextBox)row.Cells[5].Controls[0];
TextBox c6 = (TextBox)row.Cells[6].Controls[0];
TextBox c7 = (TextBox)row.Cells[7].Controls[0];
TextBox c8 = (TextBox)row.Cells[8].Controls[0];
TextBox c9 = (TextBox)row.Cells[9].Controls[0];
TextBox c10 = (TextBox)row.Cells[10].Controls[0];
TextBox c11 = (TextBox)row.Cells[11].Controls[0];
TextBox c12 = (TextBox)row.Cells[12].Controls[0];
TextBox c13 = (TextBox)row.Cells[13].Controls[0];
TextBox c14 = (TextBox)row.Cells[14].Controls[0];
grvApparati.EditIndex = -1;
con.Open();
SqlQuery = "UPDATE Tab1 SET c1 = '" + EncryptD.Encrypt(c1.Text) + "' AND " +
"c2 = '" + EncryptD.Encrypt(c2.Text) + "' AND " +
"c3 = '" + EncryptD.Encrypt(c3.Text) + "' AND " +
"c4 = '" + EncryptD.Encrypt(c4.Text) + "' AND " +
"c5 = '" + EncryptD.Encrypt(c5.Text) + "' AND " +
"c6 = '" + EncryptD.Encrypt(c6.Text) + "' AND " +
"c7 = '" + EncryptD.Encrypt(c7.Text) + "' AND " +
"c8 = '" + EncryptD.Encrypt(c8.Text) + "' AND " +
"c9 = '" + EncryptD.Encrypt(c9.Text) + "' AND " +
"c10 = '" + EncryptD.Encrypt(c10.Text) + "' AND " +
"c11 = '" + EncryptD.Encrypt(c11.Text) + "' AND " +
"c12 = '" + EncryptD.Encrypt(c12.Text) + "' AND " +
"c13 = '" + EncryptD.Encrypt(c13.Text) + "' AND " +
"c14 = '" + EncryptD.Encrypt(c14.Text) + "' WHERE ID = " + id;
SqlCommand cmd = new SqlCommand(SqlQuery, con);
cmd.ExecuteNonQuery();
con.Close();
Page_Load(sender, e);
}

protected void grvApparati_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
grvApparati.EditIndex = -1;
}

protected void grvApparati_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

int id = Convert.ToInt32(grvApparati.DataKeys[e.RowIndex].Value.ToString());
con.Open();
SqlQuery = "DELETE FROM Tab1 WHERE ID = "+ id;
SqlCommand cmd = new SqlCommand(SqlQuery, con);
cmd.ExecuteNonQuery();
con.Close();
Page_Load(sender, e);
}
Ho provato ad aggiungere la proprietà enableEventValidation="true" nel tag pages nel web.config ma il problema rimane
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5