2013-05-21 17 views
1

我注意到水晶報表在頁面索引改變時再次運行Linq查詢,意味着當我們從第一頁加載第二頁時? 所以只是想知道我們是否可以得到加載哪個頁面,以便我們可以保持會話中的值。在會話中獲取水晶報表數據

只是一個提示是必需的,因爲我沒有從Google獲得想要的結果。

更新: 我很抱歉,我只是點了一個錯誤的標籤。 所以,問題是這樣的:

這是我的代碼下面我用FR運行我的水晶報表:

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

當我從一個頁面切換到兩個或兩個以上,在DAL調用此方法再次花費第一次加載的時間,所以我只想在第一次運行查詢時使用會話中的數據,下次當我獲得頁面索引時,則會顯示會話中的數據。

有沒有辦法繞過我可以得到這個C#代碼中的頁面索引?

+0

能否請您使用一些示例代碼描述你的問題。它看起來不像XPages相關,如果沒有代碼,它可能屬於Serverfault或超級用戶? – stwissel

+0

@ stwissel:我很抱歉只是匆忙拿錯了標籤。 –

回答

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; 
        }