Yes, that was my next suggestion.
This is an expected behavior, RadGrid by itself decides when to fire the NeedDataSource event, this is true because RadGrid cache its datasource for performance optimizations. There is no need to fetch the data from the server over and over again if there is no change in the data.
And as you found out in order to force it to fire the event you should set the datasource as null outside of the event.
I hope this helps.
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed