c#datagrideview中用2个按钮,代替滚动条的效果
菜鸟求助1。 用2个按钮,代替滚动条的效果,一个 up 一个down,
2。 一万条记录,滚动条一边滚动一边加载显示.(到数据库一次查完很慢,不用分页) --------------------编程问答-------------------- 按钮都代替滚动条了,怎么还滚动条一边滚动一边加载显示?
可以设置好每次显示多少条记录,比如20条。datagrideview的数据源就20条记录。
做个按钮的Click事件,然后根据已显示记录的最大或者id来写sql,取接下来的20条或者之前的20条,然后把这20条设给datagrideview的数据源。 --------------------编程问答-------------------- 你说的就是类似上一页、下一页的按钮吧?上一页码=当前页码-1,下一页码=当前页码+1,当前页面记录=从(当前页码-1)*页面记录值 到 当前页码*页面记录值。从数据库获取数据时用DataReader顺序的获取页面记录值个记录就可以了,如果要有数据加载效果可以使用.net ajax的AjaxUpdateProgress控件 --------------------编程问答-------------------- 三楼正解。 --------------------编程问答-------------------- 用2个按钮 代替滚动条,按钮事件不知咋写 --------------------编程问答-------------------- 上下翻页就设置dataGridView1.FirstDisplayedScrollingRowIndex。
点击down按钮时,滚动条一边滚动一边加载显示。就是在点击down按钮时,根据dataGridView1.RowCount获取已经显示的条数,计算下一页的范围后,从数据库读取下一页数据,加到dataGridView1的数据源中,然后再设置一下dataGridView1.FirstDisplayedScrollingRowIndex,让dataGridView1滚动。
当然,你需要处理一下index的边界问题。
--------------------编程问答-------------------- 可能我没说清楚,不能用分,用户要查看100万条记录,在datagridview里 --------------------编程问答--------------------
int beginIndex = dataGridView1.RowCount;
//DataTable dt是dataGridView1的数据源
DataRow dr = dt.NewRow();
dr[0] = 3;
dr[1] = "两条虫子";
dt.Rows.Add(dr);
dataGridView1.FirstDisplayedScrollingRowIndex = beginIndex;
界面上不显示上一页下一页,但是实现逻辑就是分页的思想。
你用up,down取代了自带的滚动条,然后点击down的时候,程序就去获取下一页的数据,然后添加到dataGridView的datasource对象的后面,再控制dataGridView向下滚动。
int pageSize = 100;
int beginIndex = dataGridView1.RowCount;
DataTable dt = getDataTable(beginIndex ,beginIndex + pageSize);
//_dataTable是dataGridView1的数据源
_dataTable.Merge(dt);
dataGridView1.FirstDisplayedScrollingRowIndex = beginIndex;
我测试过,这样可以。
在检查一下当前显示的行已经快到dataGridView的末尾了,再执行获取数据。 --------------------编程问答--------------------
可能我没说清楚,不能用分页,用户要查看100万条记录,在datagridview里
你少了个字!嘿嘿...
--------------------编程问答--------------------
设置dataGridView1.FirstDisplayedScrollingRowIndex,就可以控制dataGridView上下滚动。
我说上一页下一页,是对数据而言,因为你的数据不是一次性取出的,就认为每次取一页的数据。
最后的效果,就是点击down的时候,dataGridView的末尾又多出来一批数据。
楼主你应该试运行一下代码看看。
补充:.NET技术 , C#