C#实现分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#实现分页相关的知识,希望对你有一定的参考价值。
参考技术A 分类: 电脑/网络 >> 程序设计 >> 其他编程语言问题描述:
当 AllowPaging 设置为真并且选定的数据源不实现 ICollection 时,AllowCustomPaging 必须为真,并且 ID 为 DataGrid1 的 DataGrid 必须设置 VirtualItemCount。
当我按提示把AllowCustomPaging设为真时,没错误提示了,但翻页功能又不能翻页.
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
DataGrid1.CurrentPageIndex=e.NewPageIndex;
bind();bind()是我定义的一个方法,用来邦定数据的。。
public void bind()
SqlConnection conn = new SqlConnection("server=.;database=master;uid=sa;pwd= ");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from Chinese";
cmd.Connection = conn;
conn.Open();
SqlDataReader sda = cmd.ExecuteReader();
DataGrid1.DataSource = sda;
DataGrid1.DataBind();
这些我都写了 怎么还是不可以
解析:
用PagedDataSource对象处理分页,我一直这么做的,在VS2003下的示例代码希望对你有帮助:
Grid控件的数据绑定
private void DgDataBind()
PagedDataSource objPage = new PagedDataSource();
objPage.DataSource = this.dvUsersRecord;
objPage.AllowPaging = true;
objPage.PageSize = 8;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else CurPage = 0;
objPage.CurrentPageIndex = CurPage;
if (objPage.PageCount <= 1)
hy_Next.Visible = false;
hy_Back.Visible = false;
else
string strUrl = Request.RawUrl;
if (!objPage.IsFirstPage)
hy_Back.Visible = true;
if (strUrl.IndexOf('?') == -1)
hy_Back.NavigateUrl = strUrl + "?Page=" + Convert.ToString(CurPage - 1);
else
if (strUrl.IndexOf("Page") == -1)
hy_Back.NavigateUrl = strUrl + "&Page=" + Convert.ToString(CurPage - 1);
else
string Words = strUrl.Substring(0, strUrl.IndexOf("Page"));
hy_Back.NavigateUrl = Words + "&Page=" + Convert.ToString(CurPage - 1);
if (!objPage.IsLastPage)
hy_Next.Visible = true;
if (strUrl.IndexOf('?') == -1)
hy_Next.NavigateUrl = strUrl + "?Page=" + Convert.ToString(CurPage + 1);
else
if (strUrl.IndexOf("Page") == -1)
hy_Next.NavigateUrl = strUrl + "&Page=" + Convert.ToString(CurPage + 1);
else
string Words = strUrl.Substring(0, strUrl.IndexOf("Page"));
hy_Next.NavigateUrl = Words + "&Page=" + Convert.ToString(CurPage + 1);
lb_PageMsg.Text = "  当前页:" + (CurPage + 1).ToString() + "/" + objPage.PageCount.ToString();
this.DGUsers.DataSource = objPage;
this.DGUsers.DataBind();
c#如何实现DataGridView翻页显示
c#如何实现DataGridView翻页显示。比如想在DataGridView当前界面只显示10条记录,其他记录通过按钮点击翻页来显示?
我的邮箱是 hanjunabc886@sina.com
谢谢喽
Sql语句:select top 10 表名.*(或需要的列名) from 表名 where ID not in(select top((当前页数-1)*10) ID from 表名)
在点击上一页或下一页时从新绑定DataGridView控件的数据源就行了。 参考技术A 属性 AllowPaging= "True " ok 分页必须用dataset数据集 dataReader不支持分页功能 参考技术B Go
declare @page_size int;
declare @page_num int;
--比如:每页10条记录
set @page_size = 500;
--比如:先取第1页
set @page_num = 1;
select *
from
(
select *,
(row_number() over(order by id) - 1) / @page_size as pagenum
from tb
)t
where pagenum = @page_num – 1 参考技术C 添加分页。allowpaging.。 参考技术D 我这刚写了一个关于上一页和下一页的代码,要就给我发邮件 likai8928776@126.com
以上是关于C#实现分页的主要内容,如果未能解决你的问题,请参考以下文章