Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] Javascript che lancia postback... perchè?

    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:

    codice:
    <%@ 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]' + slideshow[0] + '[/img]
    ');
                        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!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Le domande su ASP.NET vanno postate nella sezione relativa.

    Discussione spostata.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    ricordati che sei dentro un form percio <input> genera l'invio del form e quindi il postback. Usa un img tanto ci puoi comunque attacchare onClick.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Questo non è un problema di asp.net ma di javascript

    se non vuoi che parta il postback da un controllo <input type image o submit, nell'evento onclick basta che metti return false;

    document.write('<input type="image" src="../immagini/check18.gif" onClick="sfoglia(); return false;">');

    ciao
    Pietro

  5. #5
    Grazie a tutti: ho risolto con un input type= image


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.