这个问题困扰了我好久。如果在前端的aspx的水晶报表控件中直接设置
<CR:CrystalReportViewer ID="消费报表" runat="server" PrintMode="ActiveX"
ReuseParameterValuesOnRefresh="True" ShowAllPageIds="True" HasCrystalLogo="False"
HasGotoPageButton="True" HasPageNavigationButtons="True" SeparatePages="True" AutoDataBind="true"
BestFitPage="True" HasToggleGroupTreeButton="False" EnableDrillDown="false" OnNavigate="CrystalReportViewer1_Navigate" />
把ID直接设置为汉字,比如消费报表。导出的文件名确实是这个,但是生成的水晶报表翻页直接会报下面的错误
如果在页面后端代码的Page_Load中直接设置
CrystalReportViewer1.ID = "消费报表";
仍然是相同的问题,影响到了水晶报表的翻页功能。网上没有找到行之有效的方法。最终想出了一个办法,用重写页面的oninit事件来解决这个问题。
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//需要自数据库中获取数据,在这里处理
CrystalReportViewer1.ID = "消费报表";
this.Load += new System.EventHandler(this.Page_Load);
}