通过查询按钮 分页显示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//翻页
{
}
}