1

我注意到,当页面索引更改时,水晶报表会再次运行 Linq 查询,这意味着当我们从第一页加载第二页时?所以只是想知道我们是否可以获取加载了哪个页面,以便我们可以在会话中保留值。

只需要一个提示,因为我没有从 Google 获得所需的结果。

更新:抱歉,我刚刚点击了错误的标签。 所以问题是这样的:

这是我在下面使用 fr 运行我的水晶报告的代码:

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

当我从第一页切换到第二页或更多时,再次调用 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 回答