Scroll上的Datagridview Windows应用程序API调用
本文关键字:API 调用 应用程序 Windows 上的 Datagridview Scroll | 更新日期: 2023-09-27 18:25:54
有大量数据要从数据库中检索并显示在datagridview上。我使用API(Asmx)方法来获取数据。我想在用户向下滚动网格时加载数据(调用api)。我不想在表单加载时获取所有数据。
我有API来获取部分数据。当用户向下滚动并绑定网格时,我如何调用这个api?
这是一个相当大的挑战。。任何帮助都将不胜感激。谢谢
您想要的是DataGridView
的VirtualMode
。查看MSDN的这篇文章,它解释了为什么它对您的批量数据有好处。
虚拟模式是为使用非常大的数据存储而设计的。当VirtualMode属性为true时,您将创建一个具有一定行数和列数的DataGridView,然后处理CellValueNeeded事件来填充单元格。虚拟模式需要实现底层数据缓存,以根据用户的操作处理DataGridView单元格的填充、编辑和删除。有关实现虚拟模式的详细信息,请参阅如何:在Windows窗体DataGridView控件中实现虚拟模式。
这里还有一个关于设置的教程。
C.Barlow-提供了一个很好的解决方案,效果很好。我还想提出另一种解决办法。
在DataGridView滚动事件中,当用户向下滚动并到达网格底部时,我们可以加载数据。
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()将为您提供行计数。获取行计数的简单函数