在信息查询的时候有两种查询条件,一是查询全部的信息,另一种是模糊查询,查询结果都是在gridview中显示。请问,在点击换页的时候(启动了gridview自带的换页功能),在pageindexchanging事件中如何判断gridview该绑定按哪种查询条件查询到的结果呢?谢谢大家啦!

解决方案 »

  1.   

    说到实质就是存储当前查询条件,说到存储那么有几个途径,比如session,比如cache比如application,比如url,比如cookie。
    每次点击查询按钮的时候就去更新下存储的东西,至于存储格式那就你自己来定咯。
      

  2.   

    在pageindexchanging事件中實現不了。
    gridview自带的换页功能的原理是先讀出所有的數據,再給你分頁。
    你數據源都定下來了,怎么可能在pageindexchanging中去改變?所有要在綁定數據源的時候就要給它下參數判斷。
      

  3.   

    可以把查询分为两个分支,设置一个flag来区分是查询全部的信息(flag=1)还是模糊查询(flag),点查询按钮时,把这个flag放到session里,检索出结果时,读取一下session里面的值,就知道是什麽查询了
      

  4.   

    这个好办:使用ViewState判断,现在
    protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                if (ViewState["search"] == null)
                {
                    DlBind();
                }
                else
                {
                    gvSearchBind();
                }
            }
        }public void DlBind()
        {
            //这里绑定查询全部信息。
        }public void gvSearchBind()
        {
            //这里绑定查询模糊信息。
        }当你点击按钮查询模糊信息的时候,这样写:
    protected void Search_Click(object sender, EventArgs e)  //点击查询
        {
            ViewState["search"] = 1;
            gvSearchBind();
        }搞定。
      

  5.   

    补充一下我上面那里,在PageIndexChanging这里这样写:
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            if (ViewState["search"] == null)
            {
                DlBind();
            }
            else
            {
                gvSearchBind();
            }
        }我就是这样用,完全没问题!
      

  6.   

    好用了 小女子 在此谢过各位了 尤其感谢wangxiaofeiwuqiao兄
      

  7.   

    对存储过程传参数不熟?那你就就要好好看一看相关的资料了,你这个问题用存储过程处理sql语句是不难的,
    你的两种查询无外乎是select语句的使用,如果能在where中再设置一个参数的话就可以控制查询的种类。
    例如你设一个@type作为传入存储过程的参数
    然后就是if(@type = 1) begin.....end....
           if(@type = 2) begin.....end....