Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    Pulsante conferma in GridView

    Ciao a tutti,
    ho un semplice GridView che mi mostra il contenuto di una tabella composta solo da 3 campi.
    Il pezzo di codice che lo crea è questo:

    <Columns>

    <asp:BoundField DataField="COD_SOCIETA" HeaderText="Codice Società" SortExpression="COD_SOCIETA" />
    <asp:BoundField DataField="DSC_SOCIETA" HeaderText="Descrizione" SortExpression="DSC_SOCIETA" />
    <asp:BoundField DataField="D_CREAZIONE" DataFormatString="{0:d}" HtmlEncode="false" HeaderText="Data Creazione" SortExpression="D_CREAZIONE" />
    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />

    </Columns>

    Su Google ho trovato il seguente script che dovrebbe lanciare un pop-up di conferma:

    Button btnTest = (Button)this.GridView1.FindControl("btnDelete");
    btnTest.Attributes.Add("onClick", "return confirm('Are you sure?')");

    pur tuttavia nel mio GridView non ho nessun pulsante btnDelete (li crea infatti automaticamente il framework).
    Come posso fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    nell' evento RowCreated puoi intercettare il controllo del pulstante delete
    Codice PHP:
    string js "javascript:if(!confirm('Confermi?')){return false;}";
    foreach (
    Control c in e.Row.Cells[indiceDellaCella].Controls)
    {
        
    Button b = (Button)c;
        if (
    b.CommandName == DataControlCommands.DeleteCommandName)
        {
             
    b.OnClientClick js;
        }


  3. #3
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Nel code-behind ho messo questo codice:

    protected void Confirm(object sender, GridViewRowEventArgs e)
    {
    string js = "javascript:if(!confirm('Confermi?')){return false;}";
    foreach (Control c in e.Row.Cells[3].Controls)
    {
    Button b = (Button)c;
    if (b.CommandName == DataControlCommands.DeleteCommandName)
    {
    b.OnClientClick = js;
    }
    }

    e nella definizione del GridView il richiamo ad esso:

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
    AutoGenerateColumns="False" OnRowCreated="Confirm" DataKeyNames="COD_SOCIETA" DataSourceID="SqlDataSource1" CellPadding="4" GridLines="None">

    <Columns>
    .......



    però mi da' questo errore:

    Exception Details: System.InvalidCastException: Unable to cast object of type 'System.Web.UI.WebControls.DataControlLinkButton' to type 'System.Web.UI.WebControls.Button'.

    alla riga

    Button b = (Button)c;

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 © 2026 vBulletin Solutions, Inc. All rights reserved.