我在项目中有一问题:   页面间有一Dropdowmlist,有三个选项(全部,选项A,选项B),
要求这样,默认选项为全部,如果选项为选项A,则要求在全部的基础上加一条件A进行二次筛选,
如果选项为选项B,则要求在全部的基础上加一条件B进行二次筛选,我这样做,bind1()取出选项为全部的数据放入ds,ds放入Session
Sliter()方法进行筛选,定义ds=Session,如果Dropdowmlist=A,则加一条件A="条件",如果Dropdowmlist=B,则加一条件B="条件"bind2()调用sliter()方法Button_click()事件判断dropdowlist.selectedvalue=全部,则bind1(),else bind2()可是有一问题:默认为全部没错,如果Dropdownlist选取A,加一条件A=""结果也正常,此时将选项改为B时则出错,问题原因是:这时Session变成了刚才加一条件A="条件"时的数据集,可我想要的是全部的数据集啊,各位大侠,帮我看看

解决方案 »

  1.   

    不用存在session中吧,写个方法用来执行查询
    a(string strWhere)
    {
      string sql="select * from table "+strWhere;
    .......
    }
      

  2.   

    我的bind()是用存储过程写的,有办法吗?
      

  3.   

    我覺得Session是前一次查詢的結果
      

  4.   

    这时Session变成了刚才加一条件A="条件"时的数据集,可我想要的是全部的数据集啊=======既然是查询条件已变,应该从数据重新加载
      

  5.   

    如果不是在页面间传值,就不要用session吧为bind2添加参数a/b在Button_click()事件中判断dropdowlist.selectedvalue=全部,则bind1(),
    else bind2(dropdowlist.text)
      

  6.   

    假如你已将【全部】数据加载进 Session 完全可以使用 DataView dv = new DataView((Session["MyDataSetKey"] as DataSet).Tables["MyDataTableName"]);dv.RowFilter = 条件然后绑定 dv