1

ページ インデックスが変更されたときに、Crystal Report が Linq クエリをもう一度実行することに気付きました。したがって、セッションで値を保持できるように、ロードされているページを取得できるかどうかを知りたかっただけです。

Google から目的の結果が得られないため、ヒントが必要です。

更新: 急いで申し訳ありませんが、間違ったタグをクリックしてしまいました。 したがって、問題は次のようになります。

これは私の Crystal レポートを実行するために使用する以下のコードです。

var rpt = new Result();                    
List<class> lst1 = new DALMethod().Get();
rpt.SetDataSource(lst1);
CRReportViewer.ReportSource = rpt;

ページ 1 から 2 つ以上に切り替えると、DAL のこのメソッドが再度呼び出され、最初の読み込みにかかった時間と同じ時間がかかるため、クエリを初めて実行したときにセッション内のデータを保持したいだけです。ページ インデックスを取得したら、セッションのデータを表示します。

この C# コードでページ インデックスを取得する方法はありますか?

4

1 に答える 1

0

私は解決策を見つけました。これが他の誰かに役立つことを願っています:データソースとして一般的なリストを使用していました:

  1. ページが初めてロードされたことがわかるとすぐに、つまりポストバックではなく、セッションで維持されるリストを初期化できます。

  2. レポートを表示した後、データ ソース (リスト タイプ) を追加できます。

  3. レポート ページ シフト データはセッションから取得されます。

    if (!IsPostBack)
    {
     //clear session and create new session
     Session["ReportGenericList"] = null;
    }
    List<class> datasourceLst=null;
    
    if (Session["ReportGenericList"] != null)
      {
        datasourceLst= (List<class>)Session["ReportGenericList"];
      }
    else
      {
       datasourceLst = //call methods to fill datasource
       Session["ReportGenericList"] = datasourceLst;
      }
    
于 2014-03-31T08:10:11.193 に答える