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
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"
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?');";
}
}
}
}
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?');");
}
}
}
}
}