DataGridview在Scroll上调用Windows应用程序API

时间:2013-08-02 15:10:59

标签: c# datagridview windows-applications

要从数据库中检索批量数据并在datagridview上显示它。 我使用API​​(Asmx)方法来获取数据。 我想在用户向下滚动网格时加载数据(调用api)。 我不想在表单加载时获取所有数据。

我有API来获取部分数据。当用户向下滚动并将网格绑定为滚动时,如何调用此API?

这是一个相当大的挑战..任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

VirtualMode的所需内容为DataGridView。查看此MSDN Article,它解释了为什么它对您的批量数据有用。

  

虚拟模式设计用于非常大的数据存储。当VirtualMode属性为true时,您将创建具有一定数量的行和列的DataGridView,然后处理CellValueNeeded事件以填充单元格。虚拟模式需要实现底层数据缓存,以根据用户的操作处理DataGridView单元的填充,编辑和删除。有关实现虚拟模式的详细信息,请参阅如何:在Windows窗体DataGridView控件中实现虚拟模式。

还有一个关于设置here的教程。

答案 1 :(得分:0)

C.Barlow - 提供了一个很好的解决方案。我还想提出另一种解决方案。

在DataGridView Scroll Event上,我们可以加载数据,因为用户向下滚动并到达网格的底部。

private void Grid_Scroll(object sender, ScrollEventArgs e)
{
       if (e.Type == ScrollEventType.SmallIncrement || e.Type ==  ScrollEventType.LargeIncrement)
         {
               if (e.NewValue >= Grid.Rows.Count - GetDisplayedRowsCount())
               {
              //Load additional data here and add to your existing grid rows
//Keep track of last visible row and set it
                }
          }
}

// GetDisplayedRowsCount()将为您提供rowcount。获取rowcount的简单功能