当前位置:编程学习 > C#/ASP.NET >>

cs2010+sql2008,创建动态水晶报表,打印和导出按钮失效

看了论坛里的相关帖子以及博客内容,是说页面刷新后没有报表文件的缘故,说是把代码放到Page_Load的 if (!Page.IsPostBack){}后面就可以解决,现在我的问题是,我的报表查询是在按钮事件里的,不知道该怎么解决了,请各位帮我看一看。C#代码如下:
namespace WebApplication3
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //CrystalReportViewer1.Visible = false;
            if (!Page.IsPostBack)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert ('欢迎')</script>");

            }
        }

        protected void CrystalReportViewer1_Init(object sender, EventArgs e)
        {

        }
        private void ConfigureCrystalReports()
        {
            
            
            string reportPath = Server.MapPath("CrystalReport1.rpt");

            ConnectionInfo connectionInfo = new ConnectionInfo();

            connectionInfo.ServerName = "13-PC";
            connectionInfo.DatabaseName = "db_PMS";
            connectionInfo.UserID = "sa";
            connectionInfo.Password = "1234";
            CrystalReportViewer1.ReportSource = reportPath;
            //SetDBLogonForReport(connectionInfo);
        }
        //全部显示
        protected void Button2_Click(object sender, EventArgs e)
        {
            //将数据库中的信息绑定到报表中
            ReportDocument optDoc = new ReportDocument();
            optDoc.Load(Server.MapPath("~\\CrystalReport1.rpt"));
            optDoc.SetDataSource(CommonCodes.GetCheckData());
            CrystalReportViewer1.ReportSource = optDoc;
            CrystalReportViewer1.Visible = true;
        }
        public string empName { get; set; }
        // 按条件筛选  
        protected void Button1_Click(object sender, EventArgs e)
        {      
            Boolean flag = true;// 定义一个布尔型变量 flag
            if (txtName.Text.Trim() == "")
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert ('输入名字')</script>");
                txtName.Focus();
            }
            else
            {
                DataTable dataTable = CommonCodes.GetCheckData();
                for (int index = 0; index < dataTable.Rows.Count; index++)
                {
                    if ((string)dataTable.Rows[index]["employeeName"] == this.txtName.Text.Trim())
                    {
                        ReportDocument optDoc = new ReportDocument();
                        optDoc.Load(Server.MapPath("~\\CrystalReport1.rpt"));
                        optDoc.SetDataSource(CommonCodes.GetCheckData(this.txtName.Text.Trim()));

                        CrystalReportViewer1.ReportSource = optDoc;
                        CrystalReportViewer1.Visible = true;
                        flag = true;
                        break;
                    }
                }
                if (flag == false)
                {
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert ('输入名字错误')</script>");
                }
            }

        }        
    }
}

全部显示和查询按钮功能可以使用,如下图,但是无法打印、导出按钮失效,点击不起作用,


请帮我看看吧
水晶报表   打印 --------------------编程问答-------------------- 没人顶么,自己顶
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,