Devo chiamare asincronamente una funzione del codebehind, passando anche degli argomenti, da un js client side.
Pensando a come posso raggiungere l'obbiettivo mi è venuto in mente che in altre pagine ho campi con l'autocompleteextender che fanno più o meno la stessa cosa: man mano che scrivo nel field mandano, via post ajax, i dati alla query di ricerca (contenuta in un webmethod) per comporre un tab di risultati.
Allotta sono andato a vedere e questa è la chiamata ajax alla funzione codebehind dell'autocomplete:
codice:$(document).ready(function () { $("#sceltamainloc").autocomplete({ source: function (request, response) { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "test.aspx/SearchCities", data: JSON.stringify({ prefixText: request.term, count: 20 }), dataType: "json", success: function (output) { response(output.d); }, error: function (errormsg) { alert(errormsg.responseText); } }); }, minLength: 4, select: function (event, ui) { $("#sceltamainloc").blur(); } }); });
La mia funzione deve semplicemente fare un insert in un db di tre valori che le passo come argomenti e non deve restituire nessun risultato (al limite un boolean per sapere com'è andata)... provo quindi a inserire un pezzo del codice nel JS, cosìe...codice:$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "test.aspx/insertdata", data: JSON.stringify({ arg1: 10, arg2: 20, arg3: 30 }), dataType: "json", success: function (output) { response(output.d); }, error: function (errormsg) { alert(errormsg.responseText); } });
![]()
funziona!
Mi sto dando dei pizzicotti perchè ancora non ci credo.
La domanda doveva essere "come si fa?" ma a questo punto chiedo "è corretto come l'ho fatto?"
Ho dovuto inserire uno scriptmanager per far girare la parte ajax e jquery (perchè l'autocomplete da cui ho sradicato il pezzo che mi interessava era figlio di JQueryUI)...
Di fatto ho capito solo a grandi linee il meccanismo (ad esempio, i due esiti della funzione success/error che vojono dì?) perciò tutti i commenti sul mio trionfo pomeridiano (che potete pure ascrivere alla categoria "il qlo del principiante") sono più che ben accolti.
![]()

Rispondi quotando