3 messaggi dal 16 agosto 2010
Salve a tutti,

ho un problema.

Ho una webForm.aspx che eredita da una MasterPage la quale eredita a sua volta da un'altra MasterPage.

In tale webForm ho del codice javascript che gestisce una slideshow di immagini: vengono precaricate tali immagini e con la pressione di un bottone si va all'immagine successiva:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MyWebSite.WebForm1"
 MasterPageFile="~/Prodotti.Master" %>
 
<asp:Content ContentPlaceHolderID="_name" ID="nome" runat="server">
 <asp:Label runat="server" ID="_lblFotografi1" Font-Size="Small" Text="Text1" ForeColor="White"
 Font-Names="Arial" /></asp:Content>
 <asp:Content ContentPlaceHolderID="_size" ID="Content1" runat="server">
 <asp:Label runat="server" ID="Label1" Font-Size="Small" Text="Text2" ForeColor="White"
 Font-Names="Arial" /></asp:Content>
 <asp:Content ContentPlaceHolderID="_price" ID="Content2" runat="server">
 <asp:Label runat="server" ID="Label2" Font-Size="Small" Text="Text3" ForeColor="White"
 Font-Names="Arial" />
 </asp:Content>
 <asp:Content ID="Content3" ContentPlaceHolderID="_photoContent" runat="server">
 <table cellpadding="0" cellspacing="0" width="100%" style="height: 580px">
 <tr>
 <td valign="bottom">
 <%--Slideshow Con bottone--%>
 <script type="text/javascript">
// Creo un'array con le varie immagini da mostrare.

 slideshow = Array();
 slideshow[0] = "/Images/Products/Img1_MF_resize.jpg"
 slideshow[1] = "/Images/Products/Img2_MF_resize.jpg"
 slideshow[2] = "/Images/Products/Img3_MF_resize.jpg"
 
// definisco una variabile che userò come contatore
 var i = 0;
 
// definisco la funzione che gestisce la sequenza delle immagini
 function sfoglia() {
 // utilizzo l'operatore ternario per fare una verifica
 // ed aggiornare il valore del contatore
 i = ((i < (slideshow.length - 1)) ? i + 1 : 0);
 
// cambio dinamicamente l'attributo "src" dell'immagine mostrata
 document.slideshowimg .src = slideshow[i];
 }
 document.write('<img src="' + slideshow[0] + '" name="slideshowImg"><br/>');
 document.write('<input type="image" src="/Images/next.jpg" onClick="sfoglia()">');
 </script>
 <%--Fine Slideshow Con bottone--%>
 </td>
 </tr>
 </table>
 </asp:Content>
 


Il problema è che quando premo il bottone next.jpg (che, a rigor di logica, dovrebbe lanciare la funzione sfoglia() e basta) viene lanciato un postback, la pagina si ricarica e quindi rimane sempre la prima fotografia...

Qualcuno sa spiegarmi il perchè?

Sto uscendo pazzo!

Grazie mille!
Modificato da fabriziov il 02 dicembre 2011 08.53 -
540 messaggi dal 24 maggio 2002
Contributi
Be' usi un input type=image che è equivalente a un submit e quindi esegue il submit della form al click per default.

Puoi provare a mettere return false dopo la chiamata della funzione per "disabilitare" il comportamento di default del "bottone":
onClick="sfoglia();return false;"


oppure usare una più semplice, e vivamente consigliata, ancora:
<a href="#1" onclick="sfoglia();return false;">
    <img ...>
</a>


Marco.
Modificato da makbox il 02 dicembre 2011 15.49 -

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC