加载Crystal Report时页面会刷新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加载Crystal Report时页面会刷新相关的知识,希望对你有一定的参考价值。
我正在开发一个Asp.net项目,我们有一些接口来加载相应的报告。
我的html代码如下:
<form id="form1" runat="server">
<div>
/*----html code for selecting parameters----*/
<asp:Button Text="Submit" AutoPostBack="False" CssClass="btn btn-primary" runat="server" ID="btnSubmit" OnClientClick="javascript:return Validate()" OnClick="btnSubmit_Click" />
/*----Button to check validity and load report----*/
</div>
/*----Some html codes----*/
<CR:CrystalReportViewer ID="CRViewer" runat="server" AutoDataBind="true" EnableParameterPrompt="False" ReuseParameterValuesOnRefresh="True" ToolPanelView="None" EnableDatabaseLogonPrompt="False" HasCrystalLogo="False" HasToggleGroupTreeButton="False" HasToggleParameterPanelButton="False" HasDrilldownTabs="False" HasDrillUpButton="False" HasRefreshButton="True" HasPageNavigationButtons="True" HasPrintButton="True" DisplayToolbar="True" />
/*----this is where report get loaded----*/
</form>
选择参数并单击“提交”按钮后,将加载报告,但会重新加载页面并重置所有参数。
如何防止参数重置?
答案
要防止整个页面重新加载,您需要使用updatepanel进行部分回发。
这个例子看起来像这样
<asp:UpdatePanel ID="UpdatePanel" runat="server>
<ContentTemplate>
<CR:CrystalReportViewer ID="CRViewer" runat="server" AutoDataBind="true" EnableParameterPrompt="False" ReuseParameterValuesOnRefresh="True" ToolPanelView="None" EnableDatabaseLogonPrompt="False" HasCrystalLogo="False" HasToggleGroupTreeButton="False" HasToggleParameterPanelButton="False" HasDrilldownTabs="False" HasDrillUpButton="False" HasRefreshButton="True" HasPageNavigationButtons="True" HasPrintButton="True" DisplayToolbar="True" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" />
</Triggers>
</asp:UpdatePanel>
使按钮成为updatepanel的触发器意味着如果您按下按钮,则只更新updatepanel内的部分将重新加载,这样您就不会丢失任何值
以上是关于加载Crystal Report时页面会刷新的主要内容,如果未能解决你的问题,请参考以下文章
解决方案:从C#app调用Crystal Report导致“数据库登录失败”或“加载报告失败”
Crystal Report - vs 2003 项目的加载报告失败
Crystal Report:如果detail部分为null,则跳过页面