Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Controllo con due azioni, su due versanti diversi...

    Ho necessità di mettere un link per far scaricare un prodotto, ma contemporaneamente questo link deve anche chiamare una procedura lato server che faccia l'aggiornamento di un campo (aggiungere una unità al numero di downloads, precisamente). Sto provando con un ImageButton...Per il lato server funziona, ma come faccio a fargli fare ANCHE qualcosa lato client ?

    Qualcuno ha qualche altra idea, con un altro controllo magari ?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Si può fare in modi diversi, DE GUSTIBUS***

    Uno può essere questo:
    usi un tag html, <a o <input type=button, o <button o quello che vuoi.
    Intercetti l'evento click client e richiami una funzione javascript. Questa funzione farà quello che vuoi lato client, poi apre una pagina aspx di action, cioè fai qualcosa del genere:
    document.Form2.submit()

    Form2 lancerà una pagina aspx di action e come target avrà il name di un iframe o frame nascosto.
    La tecnica è vecchia ma collaudata
    Pietro

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    e nel frame nascosto ci metto la procedura lato server ?

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Potresti anche creare una variabile string che metti nel tag del body.
    codice:
    <body onload="<%=(nome_variabile)%>"
    Quando aggiorni lato server il contatore dei download valorizzi nome_variabile con un javascript che ti fa fare il download vero e proprio.
    Chiaramente poi devi azzerare il valore di nome_variabile (=""), e in questo caso al successivo onload non succede niente.
    Prova.
    Ciao
    Legnetto

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Allora, perdonatemi ma avevo gia' intrapreso una strada ...

    Ho una classe Tools che ha vari metodi di utilità, fra cui uno che fa questo :

    codice:
    Public Shared Sub Href(byRef Pagina as System.Web.UI.Page, byVal Percorso as String)
      Dim js as String = "<script language=javascript>
      window.location.href='" & Percorso & "' </script>"
    		
      If (Not Pagina.IsStartupScriptRegistered("clientscript_href")) then
         Pagina.RegisterStartupScript("clientscript_href", js)
      End if
    alla fine della procedura lato server (quella che aggiorna il numero di downloads) chiamo lo script con

    codice:
      Tools.Href (Me, e.commandargument)
    dove e.commandargument è il percorso del file da far scaricare al client.

    Pero' è rimasto un problemino...La pagina si carica a metà e poi mi compare la Dialog con la richiesta di salvataggio !
    Posso modificare lo script lato client in qualche modo ?

    (lo so che è competenza di un altro forum, ma la discussione coinvolge tutti e due i versanti...sorry)


  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Non sono certo un mago in javascript quindi non posso aiutarti in quel senso, però mi sembra di più un classico problema di esecuzione degli eventi.
    Da quello che ho capito al click la procedura lato server (aggiornamento contatore) viene eseguita, poi la parte client interrompe l'esecuzione per mostrarti la finestra di dialogo.
    Toglimi una curiosità e prova a copiare come ti ho detto il pezzo di codice: window.location.href='nomepagina' e vedi se porta a termine l'esecuzione prima di mostrare la dialog.
    Ciao
    Legnetto

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    'come ti ho detto', quando ? quando parlavi della variabile ?
    scusa sono fuso.


  8. #8

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    scusami legnetto, ma potresti dirmi piu' precisamente cosa intendevi?

    sto provando cosi', lato server :

    codice:
     Dim percorso as String = "java script: window.location.href='" &  
         e.commandname & "'"

    e lato client :

    codice:
    <%
    Dim Percorso as String 
    %>
    <BODY TOPMARGIN=5 onLoad="<%=percorso%>">
    ma credo che non sia la stessa variabile...

    se non metto "Dim percorso as String" in rendering prima del BODY, naturalmente si lamenta della non-dichiarazione...

    cosa intendevi ?

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    HO RISOLTOOOOOOOO


    è bastato mettere window.open al posto di window.location.href nel metodo della classe......!!

    buonanotte e grazie dell'attenzione, legnetto.

    ps1: non sono riuscito a fare il giochetto della variabile lato server...

    ps2: pietro, ho provato la tua soluzione e funzionava (ma lascio la classe)! grazie anche a te.

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