none
asociar una función javascript al delte button de un GridView RRS feed

  • Pregunta

  • Hola,

     

    Soy un principiante en Programación web con C# y .Net

     

    Mi problema es que no se cómo asociar al DeletteButton de un GridView una función javascript que saque un mensaje de error en el que se pregunte al usuario si realmente quiere borrar o no el registro.

     

    Es decir, así cómo se perfectamente cómo asociar la función javascript a un botón normal:

     

    this.btnBorrAnexo.Attributes.Add("onclick", "return confirm_delete_exp();");

     

    no veo la forma de cómo hacerlo para asociarlo al DeletteButton de un GridView.

     

    La función  javascript es muy sencilla:

     

    function confirm_delete_exp()

    {

    if (confirm("¨Est  seguro de que desea eliminar el anexo?")==true)

    return true;

    else

    return false;

    }

     

    ¿Es posible hacer lo que pretendo?

     

    Si alguien me pudiera ayudar con una solución, se lo agradecería mucho.

     

     

     

    miércoles, 13 de febrero de 2008 10:07

Todas las respuestas

  • Hola, a ver si puedo ayudar.

     

    Si es la respuesta que estas buscando, marcala como correcta para cerrar el hilo!

     

    Si es posible, no es lo mas amigable de la gridview pero es posible. Te copio el código aspx y si codebehind.

    Copialo tal cual y funcionará. Lo único en tu caso deberás reemplazar el alert que puse por tu confirm.

     

    Code Snippet

    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

    <title>Untitled Page</title>

    </head>

    <body>

    <form id="form1" runat="server">

    <asp:GridView ID="_gridView" runat="server" ShowHeader="true" >

    <Columns>

    <asp:CommandField ButtonType="Button" ShowDeleteButton="true" DeleteText="Borrar"/>

    </Columns>

    </asp:GridView>

    </form>

    </body>

    </html>

     

    Code Snippet

    protected void Page_Load(object sender, EventArgs e)

    {

    if (!this.IsPostBack)

    {

    this._gridView.RowDataBound += new GridViewRowEventHandler(_gridView_RowDataBound);

    DataTable dT = new DataTable();

    dT.Columns.Add("name", Type.GetType("System.String"));

    DataRow dR = dT.NewRow();

    dR["name"] = "Pepe";

    dT.Rows.Add(dR);

    this._gridView.DataSource = dT;

    this._gridView.DataBind();

    }

    }

    protected void _gridView_RowDataBound(object sender, GridViewRowEventArgs e)

    {

    TableCell cell = e.Row.Cells[0];//ACA DEPENDE EN QUE INDICE DE COLUMNA ESTES AGREGANDO EL COMMANDFIELD CAMBIAR SEGUN CORRESPONDAS

    Button btn=null;

    foreach (Control ctrl in cell.Controls)

    {

    btn = ctrl as Button;

    if (btn != null)

    if (btn.CommandName.ToUpper() == "DELETE")

    btn.OnClientClick = "alert('hola mundo');";

    }

    }

     

    Si es la respuesta que estas buscando, marcala como correcta para cerrar el hilo!

     

    Chau, Felicidades!

    miércoles, 13 de febrero de 2008 14:59