在使用gridview分页的时候,如何在翻页的时候改变显示的数据?
我看到大多使用的是下面的方法
protected void GV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SearchGridView.PageIndex = e.NewPageIndex; BindGrid();
}这里有个疑问,当点击翻页的时候是不是BindGrid();方法都会去连接一次数据库,并且更新datatable,从而显示出来?
我看到大多使用的是下面的方法
protected void GV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SearchGridView.PageIndex = e.NewPageIndex; BindGrid();
}这里有个疑问,当点击翻页的时候是不是BindGrid();方法都会去连接一次数据库,并且更新datatable,从而显示出来?
你如果放缓存里那就不用查DB了。个人见解,我菜鸟
是要重新去数据库读一次数据的
protected void GridViewBind()
{
GridView1.DataSource = bllart.GetAllList();
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridViewBind();
}
如果只有databind的话只是把datasource属性的数据复制到gridview并显示出来,不重新从数据库获取。
public void dlBind()
{
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
sqlconn = myCon.getCon();
sqlconn.Open();
string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);
DataSet ds = new DataSet();
MyAdapter.Fill(ds, "tb_Card");
ps.DataSource = ds.Tables["tb_Card"].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 2; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
this.lnkbtnUp.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnBack.Enabled = true;
this.lnkbtnOne.Enabled = true;
if (curpage == 1)
{
this.lnkbtnOne.Enabled = false;//不显示第一页按钮
this.lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
this.lnkbtnNext.Enabled = false;//不显示下一页
this.lnkbtnBack.Enabled = false;//不显示最后一页
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.dlContent.DataSource = ps;
this.dlContent.DataKeyField = "CardID";
this.dlContent.DataBind();
}
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
this.dlBind();
}
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.dlBind();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.dlBind();
}
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.dlBind();
}
2、重新连接、读取数据库
3、绑定到GridView1.DataSource = ds
2、重新连接Conn.ConnectionString
3、读取数据库SELECT * FROM
4、创建记录集da.Fill(ds)
5、绑定到GridView1.DataSource = ds
GridView1.DataBind()
2、重新连接Conn.ConnectionString
3、读取数据库SELECT * FROM
4、创建记录集da.Fill(ds)
5、绑定到GridView1.DataSource = ds
GridView1.DataBind()
发我一份吧。18楼的同志~~~邮箱:[email protected]
第一种方式使用自定义按钮实现分页功能,首页、上一页、下一页、末页及当前页面,总页数,分页几条,跳转第几页。
第二种方式使用HyperLinkPager分页控件。ASP.NET GridView分页控件
最基本地问题,先把asp.net2.0的入门程序做一遍。http://blog.csdn.net/zhan198271/archive/2008/06/03/2505327.aspx
为什么有人说用gridview自带的分页功能不好?感觉上还是比较方便的,使用起来很简单。