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

Discussione: windows.confirm

  1. #1
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296

    windows.confirm

    Scusate ma se riesco a capire questo meccanismo, forse ne capisco altri collegati.
    Ho una datagrid con una ImageButton su una template column.
    Cliccando su questo bottone cancello la riga.
    Io però vorrei inserire una "confirm" intercettare i valori restituitimi ed in base a questi decidere se cancellare o meno.
    Il mio problema (gira e rigira sempre lo stesso) è:

    1. Come faccio ad avviare la confirm legata all'ImageButton?
    2. Dopo avere intercettato la risposta, come ritorno il controllo alla procedura sul server che la gestisce?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    nell'evento ItemDataBound intercetti la creazione del tuo controllo. Se lo trovi aggiungi il codice javascript


    ***

    c.Attributes.Add("onclick", "return(confirm('Sei sicuro di voler cancellare questo record?'))")

    ***
    Pietro

  3. #3
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Ecco, queste sono le cose che mi fanno ammattire.
    Ho letto il tuo post, io avevo scritto la stessa cosa, ma mi mancava il "return" nella istruzione.
    Mi apprestavo a provare quanto mi avevi detto, ed ho scoperto che solamente con quella istruzione (aggiungendo il "return" davanti al confirm)la cosa mi funge.
    Dovremmo essere tutti felici e contenti, invece no. Come capperi si comporta sta diavolaccia di istruzione.
    A chi ritorna il valore della confirm, e chi la gestisce? Io gestisco solo la risposta positiva, ma come fa lui a sapere il passo successivo da compiere? e come fa a sapere cosa fare in caso di risposta negativa???


    P.S. Giusto per il futuro, caro Pietro, perdonami ma, visto che mi sono fermato prima di cominciare a fare quello che mi suggerivi, mi spieghi cosa vuol dire :
    nell'evento ItemDataBound intercetti la creazione del tuo controllo . Se lo trovi aggiungi il codice javascript
    il mio problema sta proprio nel riuscire a creare un aggancio tra il codice c e il javascript (come passare i parametri trovati in js dall'altra parte e viceversa)?

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Carissimo Otello, adesso pranzo ( ossia, mi mangio una mela ). Dopo, quando sarò sazio, cercherò di rispondere

    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Allora, ho un mio vecchissimo esempio. Ho una tabella con un tasto e una immagine per cancellare la riga corrente.
    Prima di cancellare mando un messaggio di conferma: se confermo, mando la pagina al server per la cancellazione, altrimenti mi limito a non mandare la pagina al server e non faccio nulla

    1° caso: ho un pulsante di submit. nella pagina ho:
    codice:
    <asp:ButtonColumn Text="Delete" ButtonType="PushButton" HeaderText="Delete" CommandName="Delete"></asp:ButtonColumn>
    l'html generato da asp.net è:
    codice:
    <input type="submit" name="DataGrid1:_ctl2:_ctl1" value="Delete" onclick="return(confirm('Sei sicuro di voler cancellare questo record?'))" />
    il pulsante di submit invia la pagina al server, ma posso bloccare l'azione del submit restituendo false nell'evento client onclick. Perciò, il retur confirm restituirà true o false as seconda della risposta dell'utente: se è false viene bloccato il submit.


    2° caso: ho una immagine dentro un link
    codice:
    <asp:ButtonColumn Text="[img]/corso_apogeo/immagini/cancella.gif[/img]" ButtonType="LinkButton" HeaderText="Delete" CommandName="Delete" ItemStyle-HorizontalAlign="Center"></asp:ButtonColumn>
    l'html prodotto è:
    come tu vedi, asp.net lancia il postback richiamando la funzione :__doPostBack. Anche qui, per bloccare l'azione del submit, bisogna restituire false nell'evento onclick.

    Adesso, il codice javascript per l'evento onclick, non si può scrivere pari-pari nella pagina (sarebbe troppo bello). Possiamo utilizzare però l'evento server ItemDataBound. In Basic il codice può essere:
    codice:
        Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
            Select Case e.Item.ItemType
                Case ListItemType.AlternatingItem, ListItemType.Item
                    If TypeOf e.Item.Cells(6).Controls(0) Is Button Then
                        Dim c As Button = DirectCast(e.Item.Cells(6).Controls(0), Button)
                        If c.CommandName = "Delete" Then c.Attributes.Add("onclick", "return(confirm('Sei sicuro di voler cancellare questo record?'))")
                    End If
                    If TypeOf e.Item.Cells(7).Controls(0) Is LinkButton Then
                        Dim c As LinkButton = DirectCast(e.Item.Cells(7).Controls(0), LinkButton)
                        If c.CommandName = "Delete" Then c.Attributes.Add("onclick", "return(confirm('Sei sicuro di voler cancellare questo record?'))")
                    End If
    
                Case ListItemType.Header
                    'Dim lc As New Literal()
                    'lc.Text = "<table border='1' cellspacing='1' BGCOLOR='white' BORDERCOLOR='red' ><tr><td>xxx</td><td>yyy</td></tr></table>"
                    'e.Item.Controls(1).Controls.AddAt(0, lc)
            End Select
        End Sub


    Pietro

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    ok fino qua tutto ok ma a livello di codice la risposta come la gestisco ??'o la devo leggere tramite javascript ???

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cassano
    ok fino qua tutto ok ma a livello di codice la risposta come la gestisco ??'o la devo leggere tramite javascript ???

    Per come ho scritto io, se non confermo, la pagina non fa niente. Se confermo, nel server viene lanciato l'evento DeleteCommand***
    Pietro

  8. #8
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Ci ho messo un po', perchè ho cercato di capire, e la logica non fa una grinza.
    Tuttavia ho ancora qualche dubbio:

    Allora: il confirm restituisce true o false ma non è un valore che io posso in qualche modo gestire, è gestito automaticamente, nel senso che il programma prosegue se è truè, si ferma se è false.
    Però mi sorge un dubbio:

    Nel 1° caso, nessun problema sul codice ASP, ma quando dici:
    l'html generato da asp.net è:
    cosa intendi per generato da asp?
    Io nel mio codice ho una imagebutton ed il codice asp è:

    codice:
    <asp:ImageButton id="ImageButton1" runat="server" ImageUrl="bottone_cancella.gif" CausesValidation="False" 
    CommandName="elimina"></asp:ImageButton> 
    </ItemTemplate>
    Non ho altro!

    In questo modo come faccio ad inserire qua dentro le informazioni sulla confirm e sull'eventuali informazioni da passare al server una volta passata la pagina?
    Io l'evento on_click lo gestisco sul server in c#.


    P.S. Scusa l'ignoranza ma il name nel :
    codice:
    <input type="submit" name="DataGrid1:_ctl2:_ctl1" ....
    cosa indica? E che sono :_ctl2:_ctl1?
    Scusa, ma la mia non è pedanteria, come ti sarai accorto.

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Ok grazie ora ho capito.

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    cassano batte otello 1 a 0

    Pietro

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.