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ì
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);
                            }
                        });
e...











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.