你绑定dropdownlist数据的时候应该放在ispostback里面。

解决方案 »

  1.   


     to:"放在Page_Load里面" 有没有用Page.IsPostBack加以控制...
      

  2.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    CrystalReportViewer1.InitProperties();
    ClassLibrary.TqLib.TqClass tq = new Webapp.ClassLibrary.TqLib.TqClass();
    CrystalReport1 crt = new CrystalReport1();
    string Werks = DropDownList1.SelectedValue.ToString();
    dataset11 = tq.GetList(Werks);
    crt.SetDataSource(dataset11);
    object objWerks=Werks.Clone();
    crt.SetParameterValue("Werks",objWerks);
    CrystalReportViewer1.ReportSource=crt;
    }就这些
      

  3.   

    我想可能和IsPostBack没关系,DropDownList的值是变化,但就是传不到水晶报表里面,水晶报表总是显示第一次传给它的值。DropDownList每次值都是变化的。
      

  4.   


     try: 设置 DropDownList1.AutoPostBack = true; 将你的代码移到 private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e) 里试,Page_Load里面的代码屏蔽...
      

  5.   

    试过了,还是不行
    DropDownList传出的只是对的,但是水晶报表好像接受不到第二次的值。老是显示第一次的值
      

  6.   

    object objWerks=Werks.Clone();
     crt.SetParameterValue("Werks",objWerks); //这两句没用过,其实可以先根据DropDownList的值动态生成数据集,然后传给报表即可,而不用给报表传参数的方法...