在一个页面中
有a~z个可按音序查询的<a href=search.aspx?letter=a></a>同时 在该页(search.aspx)还有一个按钮
按不同的条件查询 入关键字、类别等两种查询都将结果绑定在datagrid中当datagrid分页时就会出现问题 
只要Request.QueryString["letter"]有值
分页时datagrid 的向就按 Request.QueryString["letter"]的值绑定 page_load内代码 如下
if(this.Request.QueryString["letter"]!=null)
{
    int count=0;
    string letter=Request.QueryString["letter"].Trim();
    ViewState["Letter"]=letter;
    DataSet ds=this.GetDataByLetter(letter);
    this.dg_BuildingList.DataSource=ds;
    this.dg_BuildingList.DataBind();
    if(ds.Tables.Count>0)
    {
count=ds.Tables[0].Rows.Count;
    }
    this.lbl_Count.Text=count.ToString();
}
请问怎么解决呢?

解决方案 »

  1.   

    if (!this.IsPostBack)

         //你上面的代码
    }
      

  2.   

    晕了
    我是想通过url传的参数在本页 执行查询
      

  3.   

    组合sql语句呗.string sql = "";
    如果letter不为空,sql += "........";
    如果其他查询不为空, sql += ".......";然后再把sql提交给数据库.或者写存储过程.把各项查询值无论空或不空,交给存储过程编程处理.
      

  4.   

    就是在一个页面中有两种查询方式或条件
    一个是按字母查询 通过<a href=search.aspx?letter=a target=_self></a>
    向search.aspx传递url 中的参数letter
    每次都是通过page_load执行
    if(this.Request.QueryString["letter"]!=null)
    {
    ......
    }另一个用一个button执行另一个条件的查询两种条件在分页时没法判断状态
      

  5.   

    每次都是通过page_load执行
    if(this.Request.QueryString["letter"]!=null)
    {
    ......
    }
    --------------
    每次刷新页面的时候都会执行,所以要加上
    if (!this.IsPostBack)

         //你上面的代码
    }
    两种条件在分页时没法判断状态
    --------------
    没法判断什么状态?
    this.Request.QueryString["letter"]!=null  ??
      

  6.   

    if (!this.IsPostBack)

    if(this.Request.QueryString["letter"]!=null)
    {
        int count=0;
        string letter=Request.QueryString["letter"].Trim();
        ViewState["Letter"]=letter;
        DataSet ds=this.GetDataByLetter(letter);
        this.dg_BuildingList.DataSource=ds;
        this.dg_BuildingList.DataBind();
        if(ds.Tables.Count>0)
        {
    count=ds.Tables[0].Rows.Count;
        }
        this.lbl_Count.Text=count.ToString();
    }
    }