Devo chiamare un webmethod passando dei parameteri da una funzione JS.
Il webmethod fa un update di un record di un db.
Questo è il webmethod:
codice:
<System.Web.Script.Services.ScriptMethod(), System.Web.Services.WebMethod()>
Public Shared Function correggi(ByVal recordid As Integer) As Boolean
Dim risultato As Boolean = false
Try
Dim cnx = New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("OMAP").ConnectionString)
Using cnx
cnx.Open()
Dim strsql = "Update tabella set... WHERE ID=" & recordid
Dim cmd = New SqlCommand(strsql, cnx)
if cmd.ExecuteNonQuery()>0 then risultato = true
End Using
Catch ex As Exception
risultato = False
End Try
Return risultato
End Function
Il JS deve evidentemente passare l'ID del record da modificare... l'ho scritto così (può essere che il problema sia qui):
codice:
function rimuovi(pid) {
alert('Sto per eliminare');
$.ajax({
type: "POST",
url: "myfunx.aspx/correggi",
data: pid,
success: function (output) {
alert("Record " + pid + " rimosso");
},
error: function (errormsg) {
alert(errormsg.responseText);
}
});
}
.... dovrebbe mandare alla pagina con il webmethod, fare quello che deve fare e darmi un messaggio di errore o di successo.
Succede invece che entra nella funzione rimuovi(pid) perchè parte l'alert 'Sto per eliminare', compare anche l'alert 'Record xxx rimosso' come se l'operazione fosse stata eseguita ma in realtà non viene rimosso niente dal db....
Purtroppo non riesco a farlo andare in debug, o meglio mi esce dal debug col messaggio "Eccezione non gestita di tipo 'System.StackOverflowException' in mscorlib.dll" quando finisce di caricare il codebehind e passa alla visualizzazione del webform, per cui non completa neanche il caricamento della pagine e non riesco a capire dove si pianti.
Suggestions?