【问题标题】:When To Update Various Parts Of A Master/Detail UI何时更新主/详细 UI 的各个部分
【发布时间】:2010-01-18 18:25:42
【问题描述】:

我有一个带有项目列表和所选项目详细信息的 UI(典型的主/详细场景)。就我而言,这是一个 Silverlight 应用程序,但这个问题可能适用于其他编程模型。当应用程序启动时,UI 的列表部分通过 WCF(我控制)从远程数据源(在我的例子中为 SQL Server)填充。然后用户可以选择列表中的各种条目并查看所选条目的详细信息、添加新条目和编辑当前选择。用户有一个保存按钮来更新底层数据源。这是一个多用户环境。以下是我的问题:

1) 应用程序启动时,我应该获取列表中的所有实体及其详细信息,还是在用户选择条目时从服务获取详细信息?

2) 我什么时候从服务中更新列表?在编辑或添加之后?目前,当创建或更新完成时,我会取回更新的条目,并使用返回的数据更新 UI,作为并发检查的一部分。这样列表可能会过时,它不会显示其他用户可能创建的条目。

3) 我是否应该始终提供一个刷新按钮以允许用户手动刷新列表?

如果我有什么不清楚的地方,请告诉我。

【问题讨论】:

    标签: silverlight architecture


    【解决方案1】:
    1. 这实际上取决于您的数据列表的重量。如果您在单个页面上显示的项目不超过 30-40 个,我会将完整的实体添加到列表中,然后将它们显示在详细信息视图中。当然,如果您的实体本身是数据密集型的,具有很多属性、嵌套列表等,您可能需要重新考虑这一点。

    2. 就个人而言,我会在任何更新/添加/删除操作后立即更新我的数据列表,这正是您提到的原因;获取其他用户可能已添加/更新/删除的项目。

    3. 刷新按钮当然很好,尤其是在您没有搜索功能的情况下。如果您确实具有搜索功能,那与刷新按钮几乎相同。用户只需重复搜索即可刷新列表。

    【讨论】:

    • (关于问题 1)另一方面,如果您在列表中显示大量项目,比如数百个,我会另辟蹊径,构建一个仅用于列表的较小实体。然后当用户想要查看详细信息时,只需从服务中获取完整的实体。
    • 感谢您的回答。这给了我一个开始的地方。我认为这将是一个共同的挑战,更多的开发人员会分享他们的见解。有没有人在网络上的任何地方解决过这个问题?
    • 我想如果您也标记问题“WPF”,您可能会得到更多答案。 WPF 比 Silverlight 存在的时间更长,因此人们有更多的时间来学习和开发最佳实践。您的问题适用于这两种技术。
    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多