C# Crystal Report Viewer的参数面板为空

C# Crystal Report Viewer的参数面板为空,c#,crystal-reports,C#,Crystal Reports,我在VisualStudio2010中使用CrystalReports13SP13。报告可在aspx.net网页中查看。我希望报表在加载之前提示输入参数,然后用户可以选择一个新参数并从中查看其他记录。我已经验证了我的参数(下拉列表)是否按预期工作 我已将参数设置为“可编辑”,但面板中没有任何内容。事实上,如果我允许显示组树面板和按钮,则根本就没有用于单击参数面板的按钮 奇怪的是,当我在努力解决之前的问题时,让用户更改面板中的参数是有效的方法之一 我当前的实现使用从数据集创建的数据表。报告存储在会

我在VisualStudio2010中使用CrystalReports13SP13。报告可在aspx.net网页中查看。我希望报表在加载之前提示输入参数,然后用户可以选择一个新参数并从中查看其他记录。我已经验证了我的参数(下拉列表)是否按预期工作

我已将参数设置为“可编辑”,但面板中没有任何内容。事实上,如果我允许显示组树面板和按钮,则根本就没有用于单击参数面板的按钮

奇怪的是,当我在努力解决之前的问题时,让用户更改面板中的参数是有效的方法之一

我当前的实现使用从数据集创建的数据表。报告存储在会话变量中。如果非要我猜的话,正是这些东西给了我新的问题

我发现了一些有趣的代码


不幸的是,就像那条线的海报一样,这个代码对我不起作用。试图将ParameterFieldUsage2属性设置为ShowOnPanel时,系统抛出system.NotSupportedException。

因此,会话始终是问题所在。无论出于何种原因,当报表存储在会话变量中时,都无法更新参数

因此,我不得不再次修改我的实现

private ReportDocument rpt;
private myDataSet ds;

protected void Page_Init(object sender, EventArgs e)
{

    DataTable dt = new DataTable();
    ds = new myDataSet();
    myDataSetTableAdapters.myTableTableAdapter dsTA = new myDataSetTableAdapters.myTableTableAdapter();
    dt = dsTA.GetData();

    rpt = new ReportDocument();
    rpt.Load(Server.MapPath(mapPath));
    rpt.SetDataSource(dt);
    CrystalReportViewer1.ReportSource = rpt;

}
就这样。这就是我所需要的一切。再也不用担心回邮或会话了。在我经历了这么多之后,我不太明白这怎么会这么简单。但它是有效的

private ReportDocument rpt;
private myDataSet ds;

protected void Page_Init(object sender, EventArgs e)
{

    DataTable dt = new DataTable();
    ds = new myDataSet();
    myDataSetTableAdapters.myTableTableAdapter dsTA = new myDataSetTableAdapters.myTableTableAdapter();
    dt = dsTA.GetData();

    rpt = new ReportDocument();
    rpt.Load(Server.MapPath(mapPath));
    rpt.SetDataSource(dt);
    CrystalReportViewer1.ReportSource = rpt;

}