設計上、Excel ファイルにエクスポートするデータを取得するには、別の呼び出しを行う必要があります。これにより、ページの軽量化が維持されます。
ただし、3000 レコードすべてを毎回ロードしたい場合は、サーバーのページングを無効にしてクライアント側のページングを有効にすることができます。これにより、UI で 25 レコードを表示できますが、応答には 3000 レコードがあります。
ここでも、グリッドを共有できるように、DataSource をグリッドから分離する必要があります。
あなたの最後のコメントに基づいて:
MVC (ASP.NET) を使用している場合は、FilterContainer オブジェクトをパラメーターとしてコンテナーに渡して、データベースからデータをフィルター処理するためのすべての条件を取得できます。
public class FilterContainer
{
public List<FilterDescription> Filters { get; set; }
public string Logic { get; set; }
}
public class FilterDescription
{
public string Operator { get; set; }
public string Field { get; set; }
public string Value { get; set; }
public List<FilterDescription> Filters { get; set; }
public string Logic { get; set; }
}
JavaScript でこの構造を構築して、JS から条件をプッシュしてデータをフィルタリングします。