我已经在page_init()中编写了水晶报告的代码并运行正常,但我刚刚注意到,当我切换报告页面索引时,意味着当我想加载报告的第二页时,控件再次运行到页面加载和整个报表查询再次运行。
我做了一个switch case并从查询字符串中取出要加载报告的名称, 有什么方法可以最小化报告加载时间?
会话是更好的主意吗?
如果我在(!Ispostaback)中编写代码,那么只加载第一页,当我尝试切换第二页时,它显示没有资源可用错误。
protected void Page_Init(object sender, EventArgs e)
{
try
{
String test = Request.QueryString["ReportType"];
ReportDocument report = new ReportDocument();
switch (testCondition)
{
case "Report":
var rpt1 = new LenderCompanyActionReport();
String lcarParam1 = Request.QueryString["Param1"];
String lcarParam2 = Request.QueryString["Param2"];
String lcarParam3 = Request.QueryString["Param3"];
String lcarParam4 = Request.QueryString["Param4"];
String lcarParam5 = Request.QueryString["Param5"];
List<Reportclass> lst2 = new ReportMethod().GetReport(lcarParam1, lcarParam2, lcarParam3, lcarParam4, lcarParam5);
rpt1.SetDataSource(lst2);
CRReportViewer.ReportSource = rpt1;
break;
}
答案 0 :(得分:1)
您需要将rpt1添加到会话变量