если я вас правильно понял, вы хотите использовать собственную реализацию вместо загрузки всех данных, а затем с помощью права PagedDataSource?
Если это так, убедитесь, что QueryGoesHere
является Queryable, поддерживающим это (Linq2Sql или EF). Затем вы должны получить счет вашей даты, как это
var count = QueryGoesHere.Count();
и получите часть данных, которые вы хотите отобразить:
var skip = (curPageNumber - 1)*itemsPerPage;
var display = Math.Min(count - skip, itemsPerPage);
и просто используйте
var displayedItems = QueryGoesHere.Skip(skip).Take(display).ToArray();
Это должно сработать.