日期:2014-05-17  浏览次数:20393 次

通过查询按钮 分页显示GridView出现问题(急,在线等)
protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  string sql = "";
  if (Request.QueryString["id"] != null)
  {
  string id = Request.QueryString["id"].ToString();

  sql = "select newsid,title,convert(nvarchar(10),newstime,120)as newstime from news where newstypeid=" + id + " order by newstime desc ";
  //sql = "select newsid,title,convert(nvarchar(10),newstime,120) as newstime from news where year(newstime)=" + ddlyear.SelectedValue + " and month(newstime)='" + ddlmonth.SelectedValue + "'order by newstime desc";
  }
  else
  {
  Response.Redirect("news.aspx?id=1");
  }
   
  ShowGV(sql); //在没有查询前 显示所有数据
   
  }
   

  }
 
  public void ShowGV(string sql)
  {
  SqlDataAdapter da = new SqlDataAdapter(sql, conn);
  DataSet ds = new DataSet();
  da.Fill(ds, "123");
  PageLink1.Datasource = ds.Tables[0].DefaultView; //分页控件
  PageLink1.ParameterName = "page";
  GridView1.DataSource = PageLink1.GetDataSource();
  GridView1.DataBind();
  }

  protected void imgbtnSearch_Click(object sender, ImageClickEventArgs e) //点击查询 触发事情
  {
   
   
  string sql = "select newsid,title,convert(nvarchar(10),newstime,120) as newstime from news where year(newstime)=" + ddlyear.SelectedValue + " and month(newstime)='" + ddlmonth.SelectedValue + "'order by newstime desc";
  ShowGV(sql); 重新绑定GridView
   
  }



现在的问题就是 正常载入页面 显示所有数据 选择条件 点击查询 能正常显示 当我点击下一页时 数据又变成所有数据了。  
SQl语句没有问题

我通过断点调试,发现 当点击下一页的时候 页面被重新加载了。 它是按照显示所有数据的sql语句执行的。 请问大家有什么好的办法,急  

感谢、


------解决方案--------------------
pageLoad 去抓Request["pageIndex"];

点击改变页码(翻页事件) 的时候 设置Request["pageIndex"] += 1 或-= 1 或其他

最重要的是 页码不能被刷掉!
------解决方案--------------------
设置一个页面视图标志 如:viewstate[flag]=0;然后在 
if (!IsPostBack) 
{
if(viewstate[flag]==null)//第一次全部数据
{
}
else//翻页
{

}
}