title: Reading data from BaseDataBoundControl.DataSource (ASP.NET GridView)
body: <p>I have an ASP.NET 3.5 GridView on a WebForm. 
  The GridView gets data from an ObjectDataSource which is set via the DataSourceID property in the code in front. 
  The ObjectDataSource returns a List of custom data class objects (just a class with public properties) to populate the GridView.</p>
  
  <p>What I want to do is use the a List comsumed by the GridView in another code-behind method. At a high level:
  1. GridView is loaded with List data from ObjectDataSource.
  2. In the GridView.OnDataBound method I call GridView.DataSource to get the List object.
  3. I enumerate the List and use the same data to do some other operation.</p>
  
  <p>The theory being one less duplicated method call and one less call to the back-end database.</p>
  
  <p>I've tried calling DataSource from the GridView' DataBound method and calling GridView.Rows[x].DataItem. In each case I only get a Null reference exception ("Object reference not set to an instance of an object").</p>
  
  <p>Is there any way to achieve what I'm after?</p>