Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Timing JS e codebehind

  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    Timing JS e codebehind

    Mi sfugge qualcosa:
    ho un JS che viene lanciato sul clientclick di un controllo aspnet button.

    Questo JS fa delle operazioni lato client e poi va a impostare l'innerHTML di un div con la lettera 'S' (o lascia il predefinito 'N' se qualcosa va storto).
    A video vedo che il JS funziona, nel div viene inserito effettivamente 'S'.

    Nell'evento click del button poi parte il codebehind e va a vedere se l'innerHTML del div è valorizzato con 'N' (valore di default) o 'S': se è 'S' deve lanciare una funzione etc etc.

    Orbene, il codebehind legge l'innerHTML del div ma lo rileva sempre 'N' anche se il JS lo ha cambiato....

    codice:
    'html
    <div id="controllo" clientidmode="static" runat="server" >N</div>
    
    <asp:Button ID="btnconferma" runat="server" Text="Conferma" OnClientClick="JScheValorizzaControllo()" OnClick="btnconferma_Click"  />
                                               
    
    
    
    'codebehind
     Protected Sub btnconferma_Click(sender As Object, e As EventArgs)
            'guardo cosa c'è nel div "controllo"
            If TryCast(controllo, HtmlGenericControl).InnerHtml = "S" Then
                   ....
    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
    Assurdo, in debug a video vedo S prima del punto di interruzione sul trycast, e sul trycast il codebehind legge N
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Può dipendere dal fatto che la valorizzazione del div e la lettura del suo valore avvengono con due eventi lanciati dallo stesso controllo???
    (mi sto arrampicando sugli specchi, lo ammetto )
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    forse risolto: se invece di usare un div generico come contenitore uso un hiddenfield (maledetto maledetto) mi pare funzioni... faccio un po' di prove
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Hai forzato il div con runat=server, i valori settati lato client non sono visti dal server side, credo sia questo

    siccome devi leggere dal codeBehind, usa un altro controllo (ma del framework, con <asp:..), come un hiddenfield appunto.


    (il debug non so, mistero. forse legge dalle info di debug chissà dove)
    Ultima modifica di djciko; 14-04-2019 a 18:33

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Quote Originariamente inviata da djciko Visualizza il messaggio
    Hai forzato il div con runat=server, i valori settati lato client non sono visti dal server side, credo sia questo
    Si ma anche nel caso del controllo aspnet ho settato il valore lato client con JS ... oltretutto, forzandolo runat server, un controllo normale viene trattato (almeno apparentemente) come un controllo del framework per cui non comprendo cosa non gli vada a genio... boh comunque effettivamente così funzia. Amen
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.