Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Add column for delete in GridView with confirmation box

0.00/5 (No votes)
25 Jun 2007CPOL 1   480  
In this article, we will add a column for delete in GridView, with an image button and confirmation.

Introduction

In this article, we will see how to add and delete columns in a GridView, with an image button and a confirmation box.

Background

This article is an extension of my previous article: Event handling in Gridview User Control. I am extending the same project for this article.

Using the Code

  1. In the article Event handling in Gridview User Control, we created an event handler for RowDataBound. In this article, we are adding one more event handler for RowCommand. Use the same procedure to define the event.
  2. C#
    protected void Simple_DGV_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        OnRowCommand(e);
    }
    
    protected void OnRowCommand(GridViewCommandEventArgs e)
    {
        if (GridRowCommand != null)
            GridRowCommand(this, e);}
  3. Define the delegates for the event.
  4. C#
    public delegate void RowCommand(object sender, GridViewCommandEventArgs e);
    public event RowCommand GridRowCommand;
  5. Add an event handler for RowDataBound in the parent page.
  6. In the parent page, add a blank boundfield column in the GridView.
  7. C#
    BoundField b2 = new BoundField();
    Inc_GridView1.Columns.Add(b2);//blank column to add delete image
  8. Now in the RowDataBound event, add an image button in the blank column.
  9. C#
    void Inc_GridView1_GridRowDataBound(object sender, GridViewRowEventArgs e)
    {
    	if (e.Row.RowType == DataControlRowType.DataRow)
    	{
    		int x = Inc_GridView1.Columns.Count - 1;
    		// it will give blank column index
    
    		ImageButton img1 = new ImageButton();
    		img1.ID = "img1";
    		img1.ToolTip = "Delete";
    		img1.ImageUrl = "icons-del.gif";
    		e.Row.Cells[x].Controls.Add(img1);
    
    		ImageButton img2 = new ImageButton();
    		img2 = (ImageButton)e.Row.Cells[x].Controls[0];
    		img2.CommandName = "Delete"; 
    		img2.CommandArgument = 
    		     DataBinder.Eval(e.Row.DataItem, "c").ToString();
    		// argument to pass for delete command
    
    		// it will give confirmation on button click
    		img2.OnClientClick = 
    		     "return confirm('Do you want to delete this Record?');";
    	}
    }
  10. Now add code for handling the delete functionality:
  11. C#
    void Inc_GridView1_GridRowCommand(object sender, GridViewCommandEventArgs e)
    {
    	if (e.CommandName == "Delete")
    	{
    		int param = Convert.ToInt32(e.CommandArgument);
    		//function to delete row
    	}
    }

That's all.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)