我想在我的网站上应用一个项目(http://www.aspdotnet-suresh.com/2012/01/pass-parameters-to-crystal-reports-in.html)。我只获得我第一次选择的任何价值并获得所需的报告,但如果我选择其他值,那么我再次得到报告上一次报告。有人能帮助我吗?
default.aspx.cs
protected void btnSearch_Click(object sender, EventArgs e)
{
//CrystalReportViewer1.RefreshReport();
ReportDocument reportdocument = new ReportDocument();
reportdocument.Load(Server.MapPath("CrystalReport.rpt"));
reportdocument.SetDatabaseLogon("", "", "ghaffar-pc", "Northwind");
//reportdocument.SetParameterValue("Username", txtUserName.Text);
reportdocument.SetParameterValue("CategoryID", Convert.ToInt32(txtUserName.Text));
CrystalReportViewer1.ReportSource = reportdocument;
}
Default.aspx的
<table>
<tr>
<td><b>Enter UserName</b></td>
<td><asp:TextBox ID="txtUserName" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><asp:Button ID="btnSearch" runat="server" Text="Search" onclick="btnSearch_Click" /></td>
</tr>
</table>
</div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
EnableDatabaseLogonPrompt="False" AutoDataBind="true" ReuseParameterValuesOnRefresh="False"
EnableParameterPrompt="False" ToolPanelView="None" />
请注意,无论我选择哪种值来显示报告,我都会在CrystalReport.rpt文件中获得所需的结果。
答案 0 :(得分:0)
呼叫
reportdocument.Refresh();
就在上面的stmt。
之上CrystalReportViewer1.ReportSource = reportdocument;
答案 1 :(得分:0)
这一行之后:
reportdocument.SetParameterValue("CategoryID", Convert.ToInt32(txtUserName.Text));
添加:
CrystalReportViewer1.ParameterFieldInfo.Clear();