把绑定水晶报表的地方放到IsPostBack里就可以了如:
if (!IsPostBack)
        {
            string sqlstr = "select * from 商品信息表";
            DataSet dt = Test.Test.GetDataSet(sqlstr);
            CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
            CrystalReportSource1.ReportDocument.SetDataSource(dt.Tables[0]);
            CrystalReportSource1.DataBind();
            CrystalReportViewer1.ReportSource = CrystalReportSource1;
            CrystalReportViewer1.DataBind();
        }