Мне кажется, мне нужно выбрать между Page_Init
, если я хочу, чтобы мой Crystal Report не запрашивал параметры при изменении страницы. Или Page_Load
, если я хочу, чтобы раскрывающийся список работал правильно, чтобы установить параметр. Я хочу сделать оба, хотя!
Я предполагаю, что это потому, что выпадающий список не существует во время Page_Init
? Как я могу сделать эту работу? Соответствующий код ниже:
ReportDocument rptDoc;
dsfeeEarnings ds1;
protected void Page_Init(object sender, EventArgs e)
{
var dt = new DataTable();
ds1 = new dsfeeEarnings();
dt.TableName = "Crystal Report Fee Earnings";
dt = getFeeEarnings1();
ds1.Tables[0].Merge(dt);
rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("Report.rpt"));
rptDoc.SetDataSource(ds1);
CrystalReportViewer1.ReportSource = rptDoc;
}
dsfeeEarnings
- это файл .xsd
, который входит в отчет.
getFeeEarnings1()
- это метод, который обрабатывает значение раскрывающегося списка и запускает хранимую процедуру с использованием этого значения.
Я пытался поместить приведенный выше код в блок if (!IsPostBack)
, но это, похоже, вообще не позволяет отчету работать.
Вместо этого я попытался создать сеанс, это помогло с раскрывающимся списком, но в отчете по-прежнему запрашивались параметры каждый раз, когда я менял страницу.