按钮都代替滚动条了,怎么还滚动条一边滚动一边加载显示?可以设置好每次显示多少条记录,比如20条。datagrideview的数据源就20条记录。
做个按钮的Click事件,然后根据已显示记录的最大或者id来写sql,取接下来的20条或者之前的20条,然后把这20条设给datagrideview的数据源。

解决方案 »

  1.   

    你说的就是类似上一页、下一页的按钮吧?上一页码=当前页码-1,下一页码=当前页码+1,当前页面记录=从(当前页码-1)*页面记录值 到 当前页码*页面记录值。从数据库获取数据时用DataReader顺序的获取页面记录值个记录就可以了,如果要有数据加载效果可以使用.net ajax的AjaxUpdateProgress控件
      

  2.   

    上下翻页就设置dataGridView1.FirstDisplayedScrollingRowIndex。
    点击down按钮时,滚动条一边滚动一边加载显示。就是在点击down按钮时,根据dataGridView1.RowCount获取已经显示的条数,计算下一页的范围后,从数据库读取下一页数据,加到dataGridView1的数据源中,然后再设置一下dataGridView1.FirstDisplayedScrollingRowIndex,让dataGridView1滚动。当然,你需要处理一下index的边界问题。int beginIndex = dataGridView1.RowCount;
    //DataTable dt是dataGridView1的数据源
                DataRow dr = dt.NewRow();
                dr[0] = 3;
                dr[1] = "两条虫子";
                dt.Rows.Add(dr);
                dataGridView1.FirstDisplayedScrollingRowIndex = beginIndex;
      

  3.   

    可能我没说清楚,不能用分,用户要查看100万条记录,在datagridview里
      

  4.   


    界面上不显示上一页下一页,但是实现逻辑就是分页的思想。
    你用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的末尾了,再执行获取数据。
      

  5.   

    可能我没说清楚,不能用分,用户要查看100万条记录,在datagridview里
    你少了个字!嘿嘿...
      

  6.   


    设置dataGridView1.FirstDisplayedScrollingRowIndex,就可以控制dataGridView上下滚动。
    我说上一页下一页,是对数据而言,因为你的数据不是一次性取出的,就认为每次取一页的数据。
    最后的效果,就是点击down的时候,dataGridView的末尾又多出来一批数据。
    楼主你应该试运行一下代码看看。