Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

GridView Pagination issue when dynamically added….!

0.00/5 (No votes)
27 Mar 2010CPOL 1  
NullReferenceexception issue for gridview pagination

Hello ASP.NET developers… Today I came across a small issue which killed a large amount of my development time. The issue was a little tricky between the lines of code. I have an ASP.NET gridview which is dynamically (on the fly) created on my page. When I am inserting 2 lines of code  just for allowing the gridview pagination, code breaks at runtime giving  a NullReferenceException.

Cause of the issue: I was adding the dynamically created gridview(object) into page’s control collection after the databinding. This works fine if there is no pagination code added. But if there is code which allows pagination for the dynamically added gridview, this gridview should be added to the page’s control collection before the databinding.

Please see the below mentioned code blocks for the difference.

This piece of code will give the Null Reference Exception:

C#
GridView gvDepartment = new GridView ();
gvDepartment.ID = "gvDepartment";

gvDepartment.AllowPaging = true;
gvDepartment.PageSize = 4;

gvDepartment.DataSource = GetDepartmentRows ();
gvDepartment.DataBind ();

this.form1.Controls.Add ( gvDepartment );

This is the perfect code:

C#
GridView gvDepartment = new GridView ();
gvDepartment.ID = "gvDepartment";

gvDepartment.AllowPaging = true;
gvDepartment.PageSize = 4;

/* Need to add gridview into controls collection before databind,if there is pagination */
this.form1.Controls.Add ( gvDepartment );

gvDepartment.DataSource = GetDepartmentRows ();
gvDepartment.DataBind ();

I hope this post helped you or has given a nice thought. Thanks for reading. Please comment if you feel that there are any issues.

Please have a look into my blog for more posts: http://abinjaik.wordpress.com/.

License

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