gridview上面有一个view all的link。现在客户希望点击view all的时候,所有的数据显示,但是分页的button还在。在view all的状态下点击分页的1,2,3。依然还能实现分页效果不知道如何实现,请大牛帮忙
解决方案 »
- 急,求助:Excel导入SQL SERVER 2005我这代码错在哪?
- 数组问题
- 从MSSQL数据库的一个字段中随机选出5个值怎么操作
- 关于两个窗体之间SetData数据间传递问题请教。。。。
- 有关强名称的Dll使用
- 请谁帮个忙,使用FreeTextBox控件时,控件的图片出不来,都是小X?
- 编译问题
- ==>win form中有什么好办法使回车健跳到下一个输入框?谢了
- 问个 .net aop技术的菜鸟问题...掌握AOP技术的高手进啊!困惑...
- 比较弱的问题,关于N-Tier的,欢迎大家来讨论一下
- “System.Web.UI.WebControls.LinkButton”并不包含“Location”的定义———这是什么错误??
- 请问 这句话如何理解呢?
不过asp.net的分页的原理还是有必要弄明白的.
存储过程分页
自定义分页
aspnetpager等控件分页
通过viewstate标识判断,绑定数据方法不同。默认为分页方法。
放到你的 命令按钮里。总是这个东西 是完全可以自定义的 , 你自己看着改吧。比较好用,不懂问我
-----------------------------------------------
DataCon myCon = new DataCon();
DataOperate sqlBind = new DataOperate();
SqlConnection sqlconn;
protected void Page_Load(object sender, EventArgs e)
{
dlBind();
}
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();
}
这里有分页的存储过程,你可以直接在SQL语句内就可以实现分页了!
但是最好是别用控件自带的分页,那样的话页面加载起来会很慢的,如果用存储过程分页的话,你想查出多少条数据就随你了。