RadDataPager does not have any such requirements or limitations.
It internally builds a query appending Skip and Take clauses and then this query is to be executed on the server every time you navigate to a page. When binding the pager to a LINQ-enabled data source (i.e. IQueryable), the paging will happen on the server out-of-the-box. In case the pager is bound to an IQueryable, it will automatically append Skip(n) and Take(m) statements to this query.
Would you please share some more information on how do you use our control?