Ivan Gentile

Office and .NET blog
posts - 24, comments - 0, trackbacks - 2

mercoledì 15 marzo 2006

Preview immagine prima di farne l'upload in Javascript con ASP.Net

Di seguito vi riporto uno script (client-side) per effettuare la preview di un immagine prima di farne l'upload sul server.

Garantisco che non è stato facile, quindi eccola:

 

<script language=javascript type="text/javascript">
var maxLarghezza=100;
var maxAltezza=100;
var TipiFile=["bmp","gif","png","jpg","jpeg"];
var Output="img";
var FotoMom;

    function ApplicaModifica()
    {
        var Campo=document.getElementById(Output);
        var x=parseInt(FotoMom.width);
        var y=parseInt(FotoMom.height);
        if (x>maxLarghezza)
        {
            y*=maxLarghezza/x;
            x=maxLarghezza;
        }
        if (y>maxAltezza)
        {
            x*=maxAltezza/y;
            y=maxAltezza;
        }
        Campo.style.display=(x<1 || y<1)?"none":"";
        Campo.src=FotoMom.src;
        Campo.width=x;
        Campo.height=y;
    }

    function SettaImmagine()
    {
        var source=document.getElementById('file').value;
        var ext=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
        for (var i=0; i<TipiFile.length; i++) if (TipiFile[i]==ext) break;
        if (i<TipiFile.length)
        {
            xxx='file://localhost/' + source;
            xxx=xxx.toLowerCase();
            FotoMom=new Image()
            FotoMom.src=xxx;
            setTimeout("ApplicaModifica()",200);
        }
        else
        {
            alert('FORMATO NON VALIDO!!\n');
        }
    }
</script>

......

......


<BODY>
<br>
<input type="file" id="file" onchange="SettaImmagine()">
<br>
<img id="img" src="">
<br>
</BODY>

 

Ciao

Ivan

posted @ 17.32 | Feedback (0)

Abbinare più eventi ad uno stesso metodo in VB.Net

Per collegare più eventi ad un singolo Handler evento in VB.Net basta modificale la clausola degli Handles del metodo aggiungendo i nomi degli eventi che si vogliono associare al metodo stesso.

Separiamo i nomi degli eventi con le virgole come nell'esempio seguente.

Questo codice mostra come collegare al metodo Button_Click gli eventi generati di tre Button differenti.

 Sub Button_Click (ByVal sender as System.Object, _
    ByVal e as System.EventArgs) _
    Handles Button1.Click, Button2.Click, Button3.Click

In questo modo l'evento Button_Click verrà eseguito alla pressione di tutti e tre i pulsanti.

Bisogna fare attenzione a non riabinare poi l'evento On_click di un Button ad un ltro metodo perchè ovviamente l'evento sarebbe associato a due metodi differenti, generando un errore.

Ciao

Ivan

posted @ 12.29 | Feedback (0)