Click here to Skip to main content
10,500,000 members (78,394 online)
Click here to Skip to main content
Add your own
alternative version


15 bookmarked
Posted 25 Jun 2007

Event handling in a Gridview User Control

, 25 Jun 2007
Rate this:
Please Sign up or sign in to vote.
Create a simple Gridview User Control and access its events in the parent page using Event Bubbling.


This article explains how to create a GridView as a user control so you can customize it columns and events (using event bubbling) in the parent page.

If you create a generic GridView as a user control, then you can extend it in its parent page as per your requirements.


We will use event bubbling to implement our solution. It is used to pass an event from the user control (ASCX page) to the parent page (ASPX page).

Using the Code

  1. Create a user control with a GridView.
  2. To access its column collection in the parent page, create a Columns property.
  3. /// <summary>
    ///get grid columns collection
    /// </summary>
    public DataControlFieldCollection Columns
        get { return Simple_DGV.Columns; }
  4. Created a function to bind the datasource to the GridView.
  5. public void BindData(DataTable dt)
        Simple_DGV.DataSource = dt;
  6. Now our basic GridView is done. Open the ASPX page where you are using this control and drag and drop this control.
  7. Now open the aspx.cs file. There, you can add the columns to the grid and pass the datasource to bind to.
  8. private void BindData()
        Inc_GridView1.Columns.Clear(); //clear previous all column
        BoundField b = new BoundField(); //create  bound column
        b.HeaderText = "Column1";
        b.DataField = "c";
        Inc_GridView1.Columns.Add(b); //add column to GridView
        BoundField b1 = new BoundField();
        b1.HeaderText = "Column2";
        b1.DataField = "c1";
         Inc_GridView1.BindData(dt); // pass datasource to bind
  9. Now create the events in the User control to access it on the parent (ASPX) page. We will create a RowDataBound event which gets fired at the time of databinding.
  10. Add an event handler for RowDataBound and specify the event.
  11. protected void Simple_DGV_RowDataBound(object sender, GridViewRowEventArgs e)
  12. Then in the event function, check that no one else is using the event.
  13. protected void OnRowDataBound(GridViewRowEventArgs e)
        if (GridRowDataBound != null)
            GridRowDataBound(this, e);
  14. To access this event in the parent page, we need to use a delegate, so define a delegate and its event in the user control.
  15. public delegate void RowDataBound(object sender, GridViewRowEventArgs e);
    public event RowDataBound GridRowDataBound;
  16. To use this event in the parent page, we need to add an event handler in the InitializeComponent method of the parent page.
  17. #region generate code for delegate
    protected override void OnInit(EventArgs e)
    private void InitializeComponent()
        this.Load += new System.EventHandler(this.Page_Load);
        Inc_GridView1.GridRowDataBound += 
            new Inc_GridView.RowDataBound(Inc_GridView1_GridRowDataBound); 
  18. Now we are ready to access the event. I am changing the color of the row here. We can also specify a condition when to change the color.
  19. void Inc_GridView1_GridRowDataBound(object sender, GridViewRowEventArgs e)
        if (e.Row.RowType == DataControlRowType.DataRow)
            e.Row.BackColor = System.Drawing.Color.FromArgb(236, 245, 248);

Points of Interest

Event bubbling can be applied to any User Control for event handling.


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


About the Author

Pallavi Bhoite
Web Developer
India India
Working as software developer from last 3 year.
I am handling Windows,Web Application with C# (Visual studio 2005) and SQL server 2005. I am MCTS - Web Application 2.0 and MCPD - Web developer.

You may also be interested in...


Comments and Discussions

QuestionGridView in UpdatePanel Pin
xsoftdev25-Jul-07 10:33
memberxsoftdev25-Jul-07 10:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170915.1 | Last Updated 26 Jun 2007
Article Copyright 2007 by Pallavi Bhoite
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid