Write javascript for confirm delete in gridview rowdeleting event

前端 未结 3 1224
傲寒
傲寒 2021-01-23 07:07

I am deleting a row from gridview for which i have used gridview\'s default delete command field. On clicking, the gridview row deleting command gets fired and the selected row

相关标签:
3条回答
  • 2021-01-23 07:26

    Try this.

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            foreach (DataControlFieldCell cell in e.Row.Cells)
            {
                foreach (Control control in cell.Controls)
                {
                    // Choose between Button, ImageButton and LinkButton.
                    // as my ButtonType="Button". 
                    Button button = control as Button;
                    if (button != null && button.CommandName == "Delete")
                    {
                        string script = "if(confirm('Are you sure to delete?')) __doPostBack('{0}','{1}${2}'); else return false;";
                        string clickEvent = String.Format(
                            script,
                            GridView1.ClientID,
                            button.CommandName,
                            button.CommandArgument);
                        button.Attributes.Add("onclick", clickEvent);                                 
                        break;
                    }
                }
            }
        }
    }
    

    Much more dirty than I originally anticipated. Better to use a asp:TemplateField :)

    Please note that my ButtonType="Button"

    0 讨论(0)
  • 2021-01-23 07:27

    This article explains how to do exactly what you need:

    http://www.codeproject.com/KB/webforms/Gridview_Delete_confirmLS.aspx

    And here is the code you need to do it:

    protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // loop all data rows
            foreach (DataControlFieldCell cell in e.Row.Cells)
            {
               // check all cells in one row
               foreach (Control control in cell.Controls)
               {
                    // Must use LinkButton here instead of ImageButton
                    // if you are having Links (not images) as the command button.
                    ImageButton button = control as ImageButton;
    
                    if (button != null && button.CommandName == "Delete")
                        // Add delete confirmation
                        button.OnClientClick = "return confirm('Are you sure you want to delete this record?');";
                }
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-23 07:40

    Here is code which you can use....

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            foreach (DataControlField dcf in GridView1.Columns)
            {
    
                if (dcf.ToString() == "CommandField")
                {
                    if (((CommandField)dcf).ShowDeleteButton == true)
                    {
                        e.Row.Cells[GridView1.Columns.IndexOf(dcf)].Attributes.Add("onclick", "return confirm('Are you sure you want to delete?');");
                    }
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题