Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Fare un submit però da codice javascript

    Dunque, ho la pagina A che apre un popup B.
    B permette di fare una scelta tra i link di una tabella.
    Al click di un link, aggiorno un controllo della pagina A, e lancio una funzione refresh() javascript sempre di A.
    Vorrei che questa funzione facesse l'esatta funzione del controllo server LinkButton, cioè che facesse il submit della pagina e che mi permettesse di intercettare l'evento server corrispondente.

    Qualche suggerimento?
    Pietro

  2. #2

    Re: Fare un submit però da codice javascript

    Originariamente inviato da pietro09
    Qualche suggerimento?
    forse e' piu' un problema di javascript cmq ho visto in giro una tip che potrebbe esserti utile e ti scrivo qui di seguito

    --------------------------
    Of course ,we can use javascript code to post a page after a certain
    period of time. The
    window.setTimeout function is just for such function. For example:
    We define the following function "setTimer()" and in it we add the
    window.setTimeout("document.forms[0].submit()",1000);
    which indicate that the page will be submit 1 second later after we call
    this function.
    codice:
    <script language="javascript">
        
    function setTimer()
    {
     window.setTimeout("document.forms[0].submit()",1000);  
    }
        
    </script>
    Then, we can call this function at the page's clientside's onload event,
    just like:
    codice:
    <body onload="setTimer()" >
    And if we want to control whether to call it or not at serverside. We can
    use
    Page.RegisterStartupScript method to programmatically add this script call,
    just as below:
    codice:
    private void Page_Load(object sender, System.EventArgs e)
    {
     Page.RegisterStartupScript("setTimer","<script 
    language='javascript'>setTimer();</script>");
    }
    --------------------------
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Grazie Riccardo . Non è un problema di javascript, cioè, non del tutto.
    Allora, nella pagina, metto per esempio un linkbutton. Nel codice sottostante intercetto l'evento click. Questo però vale solo se materialmente clicco sul link. Ma se lo volessi fare da codice client?
    In poche parole, aggiungo da codice server,l'evento client onclick. Ma che ci metto? Esattamente quello che il controllo rende nell'html col tag href=codice javascrip.
    Il mio problema allora si riduce a scoprire (senza guardarlo dal browser naturalmente) come il controllo renderà se stesso in html

    Pietro

  4. #4
    si, alla fin fine devi lanciare lo stesso comando che c'è nell'href del link (il "__doPostBack('...','')")
    Il nome da passare alla funzione di solito è del tipo NomeContenitore$NomeControllo, il secondo paramatro è il commandargument se lo usi.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da DeBe99
    si, alla fin fine devi lanciare lo stesso comando che c'è nell'href del link (il "__doPostBack('...','')")
    Il nome da passare alla funzione di solito è del tipo NomeContenitore$NomeControllo, il secondo paramatro è il commandargument se lo usi.
    Questo è il modo migliore perchè, se utilizzo il comando client link.click(); questo funziona solo con IE e non con NN. Se utilizzo il metodo eval funziona con tutti e due, solo che è deprecato e mi dà fastidio usarlo.
    Però, io non conosco "__doPostBack('...','')". Non posso andare nel browser e vedere l'html prodotto, che potrebbe essere cambiato domani senza preavviso da microsoft. Lo debbo scoprire nel server. Ma come?
    Pietro

  6. #6
    __doPostBack è semplicemente la funzione javascript che viene utilizzata dalla pagine aspx per fare un postback e generare gli eventi sul server. per vedere cosa passare, prova a vedere l'html che viene costruito e cosa c'è dentro l'Href, si dovrebbe intuire come è composto il nome (contenitore$controllo), in modo da poterti costruire la funzione javascript da lanciare dinamicamente (senza avere problemi se cambiano i nomi dei controlli). Altrimenti più semplicemente puoi mettere direttamente la stessa istruzione.
    Non mi preoccuperei troppo del fatto che possa cambiare il rendering, certe chiamate js e il modo di comporre i nomi sono abbastanza standard (ho visto anche con altri javascript di .NET)... e se proprio un giorno decidessero di cambiare tutto quello di questa funzione sarà l'ultimo dei tuoi problemi VVoVe:

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.