Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    Passare più parametri a un webmethod

    Ho un autocomplete extender che funziona con del codice lato client che chiama una funzione lato server marcata come webmethod.

    Questo è il codice lato client:
    codice:
     $("#sceltadd").autocomplete({
                      source: function (request, response) {
                         $.ajax({
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            url: "mypage.aspx/SceltaDest",
                            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) {
                         $("#sceltadd").blur();
                      }
                   });
    Si vede che invoca la funzione SceltaDest della pagina mypage (ovvero si trova nel codebehind della stessa pagina).
    E questo è lato server ilcontenuto della SceltaDest:

    codice:
     <System.Web.Script.Services.ScriptMethod(), System.Web.Services.WebMethod(EnableSession:=True)> Public Shared Function SceltaDest(ByVal prefixText As String) As List(Of String)
          Dim listarisultati = New List(Of String)
         .....
          Return listarisultati
       End Function
    PROBLEMA: nel codebehind ho bisogno di ricevere un altro dato per fare quello che mi serve.
    Il dato sarebbe in un Hiddenfield solo che non posso leggerlo nel codebehind perchè "il webmethod non può accedere alle risorse della classe.." (o qualcosa di simile).
    Allora ho pensato di passarlo passarlo attraverso la funzione client...
    Ho provato a fare una cosa simile a questa:
    codice:
    ...
    url: "mypage.aspx/SceltaDest",
                            data: JSON.stringify({ prefixText: request.term + "|" + document.getElementById(Hiddenfield).value, count: 20 }),
                            dataType: "json",
                           ...
    e a recuperarlo dal codebehind facendo lo split di prefixtext sul carattere "|" ma non funzica... pare che non vada proprio più la funzione lato client... (sarebbe bello sapere cosa si pianta ma nei fatti in debug vedo che non entra più nella SceltaDest)

    Ci sarà un modo per passare più di un parametro con quella funzione JS?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    E google cosa l'hanno inventato a fare?

    https://stackoverflow.com/questions/...uery-ajax-call
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Quote Originariamente inviata da supermac Visualizza il messaggio
    E google cosa l'hanno inventato a fare?
    Sempre sia lodato San Google

    personalmente dovrei portarmi almeno un paio di manuali da 1 kg dietro
    solo per ricordarmi la sintassi
    O santo protettore del'informatico quadratico medio , se puoi allontana da me questo cetriolo amaro!
    Programmazione agile ? Guarda che qua già da un pezzo facciamo programmazione acrobatica !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.