This issue is often caused by preliminary rebinding of RadGrid. In a usual page life cycle, RadGrid does not need to rebind on every postback. It rebinds only when there are explicit Rebind() commands or some other grid command is triggered that requires an implicit rebind. Data-related commands all require rebinding - page, sort, filter, edit, update, insert, delete would all have RadGrid rebind automatically. Now, the issue you guys are getting is often caused by the fact that RadGrid is rebound once before
you try to rebind it. When RadGrid is rebound more than once in the same page life cycle, it does not fire the NeedDataSource event more than once, because after the first NeedDataSource event, it has already received a DataSource. Each successive rebind after that would use this assigned data source. Successive calls to the NeedDataSource event will be skipped.
The workaround you are using simply removes the assigned DataSource from RadGrid. Thus, RadGrid is explicitly forced to call its NeedDataSource event, as it does not have any data to bind to. The more appropriate cause of this issue to search for, I believe, would be whether RadGrid rebinds before the point in which you need to rebind it. And, more importantly, how can we skip this double rebinding and return RadGrid back to its normal control life cycle, where it rebinds only when needed and certainly a single time in a page cycle.
the Telerik team