取值问题.

byyt 2008-07-14 05:08:43
目前使用的是VS2005开发,如何取得一个被分页的Gridveiw中的所有数据,也就是说,有100条数据,Gridveiw的pagesize为20,这样就被分成了5页.如果直接取的话,只能取到第一页的20条数据,我如何才能取得后面的那4页数据呢?请大家提提建议.
...全文
191 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
beijingbeerman 2008-07-17
  • 打赏
  • 举报
回复
用sql语句或者存储过程,查询你要的记录每次返回20条,但是是每次向前推进20条(这是是第一个20条,下次是第二个20条)
chinaicm 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 sntyy 的回复:]
这样可以拿回数据源:
DataTable dt = (DataTable)GridView1.DataSource;
当然你要知道数据源是什么类型才行,这里的DataTable也可以是DataSet、DataView、、、可以试一下
[/Quote]
byyt 2008-07-17
  • 打赏
  • 举报
回复
...我说的是不能对数据源进行处理啊.我传一个gridview进去,那个类处理后生成一个新的gv,数据是被封装了的.我能看到的只有页面上的gv
sntyy 2008-07-16
  • 打赏
  • 举报
回复
这样可以拿回数据源:
DataTable dt = (DataTable)GridView1.DataSource;
当然你要知道数据源是什么类型才行,这里的DataTable也可以是DataSet、DataView、、、可以试一下
mymamxfx 2008-07-16
  • 打赏
  • 举报
回复
你可以写sql时先取20条,进行20条操作,取这二十条的非就可以了。。。
wo594261 2008-07-16
  • 打赏
  • 举报
回复
在分页前就取就行了
suyiming 2008-07-16
  • 打赏
  • 举报
回复
用AspNetPager控件分页

具体用法
    //分页赋值
protected void GetPageCount()
{
SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter oda = new SqlDataAdapter("select * from ts", conn);
oda.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "ts");
AspNetPager1.AlwaysShow = true;
SqlCommand cmd = new SqlCommand("select count(*) from ts", conn);
cmd.Connection = conn;
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();//获取表中信息的数量
GridView1.DataSource = ds;
GridView1.DataBind();
ds.Dispose();
conn.Close();
GC.Collect();


protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
GetPageCount();
}
}


随缘心 2008-07-16
  • 打赏
  • 举报
回复
据说分页技术要由存储过程来控制!
zld_baggio 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 JeffChung 的回复:]
直接拿GridView绑定的数据源
[/Quote]
byyt 2008-07-16
  • 打赏
  • 举报
回复
我的意思是,没有其他可调用的东西,只有一个被返回的gridveiw,数据源是在被封装的类里处理的,我不能对数据源进行处理.这样的情况下,我如何才能得到全部的数据.
wangshiwei 2008-07-16
  • 打赏
  • 举报
回复
UP
qqhahazxxqq 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yyq136 的回复:]
你直接处理数据源就可以了啊,比如DataTable
[/Quote]
同意 !!!!
levenwood 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 soulking 的回复:]
C# code
//设置当前显示页为最后一页
this._gridview.PageIndex = this._gridview.PageCount-1;
this._gridview.DataBind();
//最后一页的行数
int lastSize = this._gridview.Rows.Count;
//计算出总行数
int rowsCount = this._gridview.PageSize*(this._gridview.PageCount-1)+lastSize;
//最后记得把Index设为0,即显示第一页
this._gridview.PageIndex = 0;



手写的代码,你最好测试一下。
[/Quote]
用pageindex选取需要的数据
soulking 2008-07-16
  • 打赏
  • 举报
回复

//设置当前显示页为最后一页
this._gridview.PageIndex = this._gridview.PageCount-1;
this._gridview.DataBind();
//最后一页的行数
int lastSize = this._gridview.Rows.Count;
//计算出总行数
int rowsCount = this._gridview.PageSize*(this._gridview.PageCount-1)+lastSize;
//最后记得把Index设为0,即显示第一页
this._gridview.PageIndex = 0;

手写的代码,你最好测试一下。
JeffChung 2008-07-15
  • 打赏
  • 举报
回复
直接拿GridView绑定的数据源
oec2003 2008-07-15
  • 打赏
  • 举报
回复
綁定到gridview的數據源 就是所有的數據啊
srym 2008-07-14
  • 打赏
  • 举报
回复
存储过程啊。或者直接操作数据源(DATASET?)
GetPaginationRecord 'jobs','job_id',4,2,'order by job_desc','job_id>3'


create procedure GetPaginationRecord
@tableName varchar(50),
@fieldKey varchar(20),---主键
@pageSize int = 10,
@pageIndex int = 1,
@sqlOrder varchar(100) = '',---排序字段(order by fieldName [desc|asc])
@sqlWhere varchar(200) = ''
as
declare @strSQL varchar(5000)
if @sqlWhere != '' ---有查询字符串
begin
set @strSQL = 'select top '+str(@pageSize)+' * from '+@tableName+' '+
'where '+@fieldKey+' not in(select top '+str((@pageIndex-1)*@pageSize)+
' '+@fieldKey+' from '+@tableName+' where '+@sqlWhere+' '+@sqlOrder+') and '+@sqlWhere+
' '+@sqlOrder
end
else --- 无查询字符串
begin
set @strSQL = 'select top '+str(@pageSize)+' * from '+@tableName+' '+
'where '+@fieldKey+' not in(select top '+str((@pageIndex-1)*@pageSize)+
' '+@fieldKey+' from '+@tableName+' '+@sqlOrder+') '+@sqlOrder
end

exec(@strSQL)

byyt 2008-07-14
  • 打赏
  • 举报
回复
可能是我的意思没说清楚,我不是要把数据绑定到GRIDVEIW,而是要把它里面的数据取出来,比如,有一个被封装好的方法用来绑定GRIDVEIW.我不能对这个方法进行任何处理.页面上只有一个有数据的GRIDVIEW,而且是分页了的,我要如何才能把全部数据取出来.
mapserver 2008-07-14
  • 打赏
  • 举报
回复
两种办法:
1、数据量小,可以通过DataAdapter.Fill(dataset)的方式,把数据一次性取出来,通过GridView自带的分页进行分页。
2、数据量大,自己动手做分页,每次只取一页的数据,显示那页就取那页。
ctqb1122 2008-07-14
  • 打赏
  • 举报
回复
LZ翻页的功能没有实现吧.允许分页,然后,设置PageIndexChanging
加载更多回复(8)

62,220

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧