C#DataGridView如何用代码让它反映翻页

时间:2022-11-24 14:43:49
在datagridview有很多记录,对新增加的记录,想让它显示在当前的datagridview里
能不用绑定的话,最好不用。

10 个解决方案

#1


使用BindingSource作为数据源看看

#2


手动插入
rows.add

#3


不知道你说的是WEB控件还是WINDOWS控件,WIN的话用ROWS.ADD就可以了。WEB控件是不能这样做的,因为它要通过数据源一次性的生成HTML,动态插入只有你自己写JS了。至于分页有一个PagedDataSource类,把他的实例赋值给gridview的DataSource就可以在外面用代码控制分页了。

#4


不知道你说的是WEB控件还是WINDOWS控件,WIN的话用ROWS.ADD就可以了。WEB控件是不能这样做的,因为它要通过数据源一次性的生成HTML,动态插入只有你自己写JS了。至于分页有一个PagedDataSource类,把他的实例赋值给gridview的DataSource就可以在外面用代码控制分页了。

#5


楼主应该说的是想有2个Datagridview,一个是数据量大,另一个是让他显示对Datagridview1增加后的数据,你说不用绑定
,我看就用二楼的方法吧,获取增加后的值手动插入 rows.add,只有这样啦

#6


个人觉得一个解决方案是,用存储过程来控制页数,这样资源占用比较少。
然后,用Datagridview来绑定数据源。不太建议用rows.add。如果rows.add的话,要对插入的数据进行检验,插入数据可能引发异常。

#7


感觉上有2种做法,一种用javascript去做比较麻烦
还有一种用异步操作吧,效果应该可以达到你需要的样子

#8


LZ说的是datagridview,肯定是WinForm。
你们所说的Rows.Add,也是在用绑定数据。
LZ我告诉你吧,不绑定别想了,而且,绑定没什么不好的啊,我猜想你只是不想重复绑定而已,直接操作数据源就好了。

#9


引用 8 楼 justindreams 的回复:
LZ说的是datagridview,肯定是WinForm。 
你们所说的Rows.Add,也是在用绑定数据。 
LZ我告诉你吧,不绑定别想了,而且,绑定没什么不好的啊,我猜想你只是不想重复绑定而已,直接操作数据源就好了。


用绑定,对某列进行了排序,这时新增加的记录就还是不好定位在当前的DataGridView里,
想问一下这里怎么处理?
如果没有排序用position -1可以指向最后一行,现在就是一旦排序就不好定位了。

#10


说下我的思路,我做的项目也实现了一个分页的情况。
比如说你的dataGridView  绑定了数据表25条记录。 每一页显示10条记录 ,总共需要三页。
比如说你的数据库实体类为 
class Temp
{
   string ID;
   string name;
   ......
   ......

}
可以第一个泛型  List<Temp> list=new List<Temp>();
list 里面有25条记录。 10*Num
你下面添2个命令按钮   上一页 也一页 10条记录绑定就OK  10*Num 点下一页Nmu 变成2  用 List[i]这样绑定 就ok 了。

 

#1


使用BindingSource作为数据源看看

#2


手动插入
rows.add

#3


不知道你说的是WEB控件还是WINDOWS控件,WIN的话用ROWS.ADD就可以了。WEB控件是不能这样做的,因为它要通过数据源一次性的生成HTML,动态插入只有你自己写JS了。至于分页有一个PagedDataSource类,把他的实例赋值给gridview的DataSource就可以在外面用代码控制分页了。

#4


不知道你说的是WEB控件还是WINDOWS控件,WIN的话用ROWS.ADD就可以了。WEB控件是不能这样做的,因为它要通过数据源一次性的生成HTML,动态插入只有你自己写JS了。至于分页有一个PagedDataSource类,把他的实例赋值给gridview的DataSource就可以在外面用代码控制分页了。

#5


楼主应该说的是想有2个Datagridview,一个是数据量大,另一个是让他显示对Datagridview1增加后的数据,你说不用绑定
,我看就用二楼的方法吧,获取增加后的值手动插入 rows.add,只有这样啦

#6


个人觉得一个解决方案是,用存储过程来控制页数,这样资源占用比较少。
然后,用Datagridview来绑定数据源。不太建议用rows.add。如果rows.add的话,要对插入的数据进行检验,插入数据可能引发异常。

#7


感觉上有2种做法,一种用javascript去做比较麻烦
还有一种用异步操作吧,效果应该可以达到你需要的样子

#8


LZ说的是datagridview,肯定是WinForm。
你们所说的Rows.Add,也是在用绑定数据。
LZ我告诉你吧,不绑定别想了,而且,绑定没什么不好的啊,我猜想你只是不想重复绑定而已,直接操作数据源就好了。

#9


引用 8 楼 justindreams 的回复:
LZ说的是datagridview,肯定是WinForm。 
你们所说的Rows.Add,也是在用绑定数据。 
LZ我告诉你吧,不绑定别想了,而且,绑定没什么不好的啊,我猜想你只是不想重复绑定而已,直接操作数据源就好了。


用绑定,对某列进行了排序,这时新增加的记录就还是不好定位在当前的DataGridView里,
想问一下这里怎么处理?
如果没有排序用position -1可以指向最后一行,现在就是一旦排序就不好定位了。

#10


说下我的思路,我做的项目也实现了一个分页的情况。
比如说你的dataGridView  绑定了数据表25条记录。 每一页显示10条记录 ,总共需要三页。
比如说你的数据库实体类为 
class Temp
{
   string ID;
   string name;
   ......
   ......

}
可以第一个泛型  List<Temp> list=new List<Temp>();
list 里面有25条记录。 10*Num
你下面添2个命令按钮   上一页 也一页 10条记录绑定就OK  10*Num 点下一页Nmu 变成2  用 List[i]这样绑定 就ok 了。