【问题标题】:How do I populate an XtraGrid dynamically?如何动态填充 XtraGrid?
【发布时间】:2012-11-29 22:17:28
【问题描述】:

我有一个需要显示大表数据的网格。我不想一次加载整个表,因为这会很难记忆。我知道服务器模式下存在虚拟负载,但我是从本地 csv 文件加载而不使用任何 sql server 数据库。

有没有这样的虚拟加载方法来支持自定义数据访问对象,这样当用户在网格上向下滚动时,我就可以从我的 csv 中获取数据?

非常感谢任何帮助。

【问题讨论】:

    标签: devexpress xtragrid


    【解决方案1】:

    我不相信任何这样的事情存在。但是,可以通过实现 DevExpress.Data.IListServer 接口来实现自己的功能。从我读过的关于这个主题的内容来看,这似乎不是一项微不足道的任务。这些链接可能会帮助您入门。

    Simple IListServer implementation

    Does the XtraGrid support Virtual Load mode?

    另一种方法是将 csv 数据导入 SQLite 数据库。然后您可以使用 LinqServerModeSource 作为您的数据源。以下链接提供了有关如何执行此操作的详细信息。

    SQLite and Server Mode

    希望这会有所帮助。

    【讨论】:

    • 这是一个绝妙的帮助,谢谢!我会马上调查的。
    • 正如@kenrogers 指出的那样,您需要使用XPO。文件有多大(以行计)?
    • 请原谅我刚刚开始使用 DevExpress,什么是 XPO?它可能有数十万行,并且很可能在相当旧的系统上运行,因此我需要限制数据加载到的内存量。我必须说我真的不想搞乱我自己的 IListServer 实现。我确实注意到它提到在 DataVirtualGrid 演示中使用数据表扩展 virtualList 的一个链接,但它对于保留、更改和不必要的内容有点模糊。事实上,我根本找不到关于 DataVirtualGrid 演示的任何文档。
    • XPO 代表 eXpress 持久对象。它是 DevX 的 ORM 库。您可以使用 XPO,但不是必须的。正如“SQLite 和服务器模式”链接中所指出的,您可以使用 XPO,也可以使用 LinqServerModeSource 和 SQLite 连接器,例如 DbLinq。要使用 XPO,您必须从 DevExpress 购买许可证。因此,如果您没有,LINQ 是您唯一的选择。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多