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语句来分页,(它本身也有一个分页的功能,不过我一般不用!)

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#实现分页的主要内容,如果未能解决你的问题,请参考以下文章

单页分页问题中的多个角度材料表

梦内容页分页标题提取

一个视图中的 CI 多页分页,

以多页分页打印所有数据

CakePHP 2中带有分页分页类的大小为f数组的问题

当我在基于类的视图中应用过滤器时,如何在 django 中使用分页分页。网址总是不断变化我如何跟踪网址