3 messaggi dal 29 novembre 2009
Ciao a tutti.
Questo è il mio primo post, dove richiedo se possibile un aiuto, sperando a mia volta di poter fare altrettanto in futuro.
Provengo da una formazione procedurale, e con gli oggetti... e sono veramente agli inizi con .NET in generale; spero nella vostra comprensione....

Vi espongo il mio problema.
S.O. win 2003 server, SQL server 2005 professional
Visual studio 2008, framework 3.5, ASP.NET 2.0
Linguaggio Visual Basic
Pagina aspx, con una immagine JPG contenuta in una Imagemap.
L'immagine ha una serie di quadrati, alcuni bianchi, alcuni con un tratteggio singolo, alcuni con un tratteggio doppio.
Ciò che voglio ottenere è che, al click su un quadrato, questo si colori, mantenendo l'eventuale tratteggio sottostante.
L'immagine JPG risultante non andrà salvata.
L'evento click lo posso intercettare con gli HotSpots, ma ciò che proprio non mi riesce è trovare un modo per colorare quella benedetta area definita all'interno dell'hotspot.
Sicuramente bisogna usare un colore trasparente ( unica certezza al momento), ma come?

Grazie fin d'ora per qualunque aiuto.

Antonio.
Modificato da ma_di il 29 novembre 2009 17.32 -
72 messaggi dal 04 agosto 2008
Ciao Antonio,
non ho capito se si tratta di una matrice nxm di quadrati; se così fosse ti sconsiglierei di utilizzare un'ImageMap ma piuttosto una table nxm con, in ogni cella, un link con dentro un'immagine; al click sulla cella gestirei la sostituzione dell'immagine con la corrispondente colorata.
Sarebbe possibile gestire la cosa sia con oggetti asp.net e click che effettuano post ma anche esclusivamente lato client in javascript quindi senza oggetti asp.net.
Ritieni applicabile questa strada al tuo caso?
Ciao
Salvo
3 messaggi dal 29 novembre 2009
Ciao Salvo e grazie per l'interessamento.
No, non è una matrice; sicuramente mi sono espresso male.
Nell'immagine jpeg ci sono questi quadrati; non sono elementi "fisici", ma fanno parte del jpeg; immagina una foto, in formato jpeg, dove al posto dei classici "figli" ci sono dei quadrati
Cliccando nelle varie aree "quadrato",(le cui coordinate sono note) l'area deve diventare verde, o rossa, o gialla ( ma questo non è un problema, se risolvo il Problema ... ) mantenendo l'eventuale tratteggio presente all'interno.

Ancora grazie e ciao.
Antonio
72 messaggi dal 04 agosto 2008
Ciao Antonio,
mi spiace non esserti potuto essere d'aiuto; comunque a me sembra che gli hotspots non abbiano le funzionalità da te richieste, come non ce l'hanno i corrispondenti oggetti html.
Forse la soluzione sta fuori da ASP.NET ma, per me, i CSS sono sempre un po' ostici: ho fatto qualche prova con i div e sembra possa funzionare (su ff3 va ma su ie6 non tanto). Ci sarebbero da risolvere un po' di problemi di compatiblità con i browser ma intanto puoi vedere se questo può risolvere il problema:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function select_deselect(divId) {
            //alert('ciao');
            var myDiv = document.getElementById(divId);
            if (myDiv.style.backgroundColor == "Transparent" || myDiv.style.backgroundColor == "") {
                myDiv.style.backgroundColor = "#990000";
            }
            else {
                myDiv.style.backgroundColor = "Transparent";
            }
                
        }
    </script>
    <style type="text/css">
        .box
        {
            width:50px; 
            height:50px; 
            background-color:Transparent; 
            z-index:2; 
            position:absolute; 
            left:10px; 
            top:10px; 
            filter:alpha(opacity=50);  
            -moz-opacity:0.5; 
            -khtml-opacity: 0.5; 
            opacity: 0.5;
        }
        .box a 
        {
            display: block;
            height: 100%;
            width: 100%;
        }
    </style>
</head>
<body>
    <img src="images/img_0001.jpg" width="600" height="400" style="z-index:1" alt="" />
    <div id="myDiv" class="box">
        <a href="javascript:select_deselect('myDiv')"></a>
    </div>
</body>
</html>

Metti un'immagine 600X400 al posto di images/img_0001.jpg; il quadrato da cliccare, invisibile all'inizio, è in alto a sinistra.
In alternativa ho visto qualcosa di interessante a questo indirizzo:
http://www.cssplay.co.uk/articles/imagemap/
Ciao
Salvo
3 messaggi dal 29 novembre 2009
Gli hotspots mi servono solo per risalire all' "indice" del quadrato su cui si è cliccato; da li poi vorrei far partire la procedura di colorazione.
Ad ogni modo ora è tardi e domani la sveglia suona presto....
Farò qualche prova e ti farò sapere.

Grazie di tutto.

Ciao.
Antonio

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.