Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703

    chiamata funzione c# con jquery

    ciao a tutti, sto facendo una web app con asp.net e c#;
    avrei bisogno, dato un valore in una textbox, di richiamare, alla modifica del valoreuna mia funzione all'interno di una classe appositamente creata.
    Tutto questo senza effettuare il submit, è possibile? Se si, come?
    Grazie.

    p.s: avrei trovato una cosa del genere => codesnippet.biz/chiamare-un-metodo-asp-net-tramite-jquery/
    ma non ho idea se vada bene e sopratutto dove mettere il [WebMethod]

    p.p.s ho postato anche in sezione asp.net ma questa mi sembra più coerente, potete chiudere l'altra?grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    devi utilizzare ajax (cosa che fa anche l'esempio che hai postato). Con jquery è abbastanza semplice e hai anche l'esempio nel sito. Prova ad informarti un po' su questa tecnologia e butta giù del codice, se poi hai ancora problemi posta nuovamente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ciao, sisi preferisco farlo tramite jquery; ho già implementato qualche funzione di verifica sulle mie textbox per quanto riguarda l'input numerico ecc.
    In questo caso però volevo capire quale era l'approccio migliore, nel senso, se avessi una gridview che contiene una textbox e alla modifica di quest'ultima(sul lost focus) dovrei far scorrere tutta la grid e fare dei ragionamenti sui valori contenuti(somme), la strada migliore da seguire è:

    . fare tutto da jquery
    . chiamare una mia funzione c# (nell'esempio non capisco dove mettere fisicamente la definizione [WebMethod], in quanto compilando non mi torna un errore)

    grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Riporto dal sito che hai indicato:

    si può definire all’interno della classe un metodo statico firmato come WebMethod che permette di essere richiamato direttamente dall’esterno tramite una chiamata Ajax
    Quindi basta inserire questo metodo firmato nella classe che vuoi richiamare tramite ajax, cmq qui si parla di asp.net quindi per approfondimenti devi chiedere nella sezione del forum corretta.

    Sempre riferita all'esempio del sito:

    codice:
        $.ajax({
            type: "POST",
            url: "Default.aspx/Sum",
            data: "{'a': '10', 'b' : '1'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            }
        });
    Dentro la classe Default.aspx devi metterci il tuo WebMethod chiamandolo "Sum" come specificato nella chiamata ajax.

    se avessi una gridview che contiene una textbox e alla modifica di quest'ultima(sul lost focus) dovrei far scorrere tutta la grid e fare dei ragionamenti sui valori contenuti(somme), la strada migliore da seguire è:
    Se tutti i dati che ti servono li hai a disposizione nella pagina allora puoi fare tutto nella parte client, ma questo dipende da come è strutturata la tua applicazione è difficile darti una risposta precisa. Se per esempio per fare questi "ragionamenti" ti servisse una dato specifico da recuperare in un db o ancora se il risultato dei tuoi ragionamenti andrebbe salvato in un db o file allora conviene fare tutto lato server(c#). Ovviamente le mie sono solo ipotesi solo tu puoi sapere qual'è la strada migliore da percorrere.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ok, ti ringrazio davvero per la risposta!
    no, non devo interagire con nessun db; lo scopo delle somme è riportare il valore in una label..
    l'ultima cosa: ma dal WebMethod non riesco ad accedere alle propietà degli elementi che compongono la mia pagina?! sembra non li veda..

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    nel WebMethod puoi accedere alle sole informazione che ajax ha spedito. Nell'esempio potrai recuperare esclusivamente i dati conenuti in 'a' e 'b'.

    codice:
    $.ajax({
            type: "POST",
            url: "Default.aspx/Sum",
            data: "{'a': '10', 'b' : '1'} ",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            }
        });

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ok, quindi questo tipo d'approccio non fa al caso mio;
    ho pensato quindi di fare tutto tramite jquery, solo che non ho idea di come recuperare il valore della textobox(All'interno di una gridview) nella quale ho appena cambiato il valore..per ora ho fatto solo:

    codice:
    $('.defaultTextActive').blur(function () 
                    {
                        var tot = 0;
                        $("#mbody_lbRisB").text(tot);
                    });
    grazie!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    ho risolto se serve a qualcuno:

    codice:
    var tot = 0;
                    for (i = 0; i < 10; i++) {
                        var singleValues = $("#mbody_GwNuovaPartitaB_txtGolGwNuovaPartitaB_" + i).val();
    
                        tot = parseInt(tot) + parseInt(singleValues);
                    }
                    $("#mbody_lbRisB").text(tot);

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 © 2025 vBulletin Solutions, Inc. All rights reserved.