Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: tag <a> vs ImageButton

  1. #1

    tag <a> vs ImageButton

    Ciao a tutti, ho uno strano problema:
    nel codice di seguito ho un tag <a> che funziona correttamente (apre una modal dialog di jQuery UI) e un ImageButton che vorrei facesse la stessa cosa per sostituirlo al tag <a>, il problema è che l'ImageButton invece di aprire la popup (ovvero chiamare js) mi fa il postback della pagina.
    Sapreste dirmi dove sbaglio?
    Ecco il codice:
    codice:
    <asp:Repeater ID="sortableRepeater" runat="server" >
            <ItemTemplate>        
                <li id='<%#Eval("idphotoimage")%>'>
                    <asp:Image ID="Image1" ImageUrl='<%#Eval("thumb")%>' runat="server" /> 
                    
                    <asp:ImageButton ID="editButton" ImageUrl="images/edit.gif" CausesValidation="false" onClick="editImage" CommandArgument='<%#Eval("idphotoimage")%>' onClientClick='return editfunction(<%#Eval("idphotoimage")%>);' runat="server" />
                    
                    
                            
            </ItemTemplate>
        </asp:Repeater>
    Grazie
    http://www.dofoo.net

  2. #2
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Prova a levare onclick

  3. #3
    provato, non funge
    http://www.dofoo.net

  4. #4
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    in fondo alla funzione javascript che gestisce l'evento prova a inserire "return false"

  5. #5
    allora, questa è la stranezza:
    se chiamo editfunction ho il problema, se chiamo newfunction dallo stesso imagebutton, la modal si apre
    di seguito il codice

    codice:
    function editfunction(obj) {
                var url = "editPhotoGalleryImage.aspx?id=" + obj;
                                          
                var dialog = $('<iframe src="' + url + '" frameborder="0"></iframe>').appendTo('body');
                dialog.dialog({ modal: true, minHeight: 570, minWidth: 400, show: "blind",
                    hide: "explode", open: function (type, data) { $(this).parent().appendTo("form"); },
                    close: function (event, ui) { window.location.reload(); }
                });
                return false;
            };
            function newfunction() {
                var querystring = location.search;
                var url = "insertPhotoGalleryImage.aspx" + querystring;
    
                var dialog = $('<iframe src="' + url + '" frameborder="0"></iframe>').appendTo('body');
                dialog.dialog({ modal: true, minHeight: 570, minWidth: 400, show: "blind",
                    hide: "explode", open: function (type, data) { $(this).parent().appendTo("form"); },
                close: function(event, ui) {  window.location.reload(); }
                 });
                return false;
            };
    
    ...
    
    <asp:ImageButton ID="ImageButton1" ImageUrl="images/edit.gif" CausesValidation="false" onClientClick='return editfunction(<%#Eval("idphotoimage")%>' runat="server" />
    Non capisco dove sbaglio..
    http://www.dofoo.net

  6. #6
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    non ho capito come usi newFunction...

    cmq scrivi:
    codice:
    <asp:ImageButton ID="ImageButton1" ImageUrl="images/edit.gif" CausesValidation="false" onClientClick='editfunction(<%#Eval("idphotoimage")%>);return false;' runat="server" />

  7. #7
    il problema potrebbe stare nel "EVAL" che usi solo con editfunction.
    Probabilmente stai tentando di mettere come parametro una stringa, ma ti mancano gli apici.

    dopo che hai caricato la pagina, guarda il codice HTML sorgente, e vedi cosa viene scritto all'interno delle parentesi di editfunction. poi valuta anche il codice interno della funzione in base a cosa stai passando come parametro.

    fai le dovute correzioni e vedrai che funziona

  8. #8
    fatto, stesso problema.
    se io chiamo newfunction al posto di editfunction la modal si apre, quindi credo sia un problema javascript, o del dato che passo alla function

    sto provando così:
    codice:
    function editfunction(obj) {
                var url = "editPhotoGalleryImage.aspx?id=" + obj;
                alert(url);
                /*
                var dialog = $('<iframe src="' + url + '" frameborder="0"></iframe>').appendTo('body');
                dialog.dialog({ modal: true, minHeight: 570, minWidth: 400, show: "blind",
                    hide: "explode", open: function (type, data) { $(this).parent().appendTo("form"); },
                    close: function (event, ui) { window.location.reload(); }
                });
                */
                return false;            
            };
    ...
    <asp:ImageButton ID="ImageButton1" ImageUrl="images/edit.gif" CausesValidation="false" onClientClick='editfunction(<%#Eval("idphotoimage")%> );return false;' runat="server" />
    non mi appare l'alert e la pagina va in postback. la cosa assurda è che se provo a chiamare la function così:
    codice:
    );' >edit
    la modal si apre.
    credo sia un problema legato a come passo la variabile ma non vedo problemi in quello che ho scritto.
    http://www.dofoo.net

  9. #9
    scusa gluk, non avevo visto la tua risposta, provo e ti dico
    grazie
    http://www.dofoo.net

  10. #10
    effettivamente hai ragione gluck

    vedo questo:
    onclick="editfunction(&lt;%#Eval(&quot;idphotoimag e&quot%> );return false;"
    non mi interpreta il valore..
    non so come scriverlo altrimenti però..
    http://www.dofoo.net

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.