我们正在为Silverlight 4.0选择第三方控件套件。我们最感兴趣的是功能丰富的网格控件。我很惊讶地发现大多数产品都集中在客户端分页,过滤,排序和分组上。但是,如果数据集足够大以便从这些功能中受益,那么在一次调用中也不会给客户端带来太大的影响吗?这不会使大多数广告中的花式网格功能无用吗?在我看来,200行数据是我在一次请求中从服务器请求的数量的理想上限。然而,Telerik,DevExpress,ComponentOne,Xceed等网站都进行了精彩的演示,为客户端带来了10,000多行数据,并展示了对其进行分页,过滤,分组和排序的能力。谁为客户带来了10,000多行数据?如果您有1,000个并发用户怎么办?如果那些数据不稳定怎么办?这真的解决了什么用例?
您是否可以与任何这些控制套件分享您的体验,以及您是否已实施分页?您是否使用RIA?
感谢。
答案 0 :(得分:0)
您不需要第三方网格控件来实现服务器端分页。您可以使用silverlight工具包http://silverlight.codeplex.com/
提供的网格控件和ObjectDataSourcehttp://borrell.parivedasolutions.com/2008/01/objectdatasource-linq-paging-sorting.html
答案 1 :(得分:0)
我同意你的观点,客户想要同时查看他们整年的数据价值可能会很疯狂,但有时客户(和产品经理)看不到你做的事情。坚持做蠢事......
在任何情况下,只是因为该演示正在翻阅100万条记录,这并不意味着它们将所有记录都带到了客户端。您还必须考虑具有200行数据的情况,但由于您使用的数据模板(一个页面只能容纳10行),您一次只能显示10行 - 您仍然可以检索所有数据200行,因为它只是您的演示文稿正在耗尽实际房间。您还可以在请求时实现分页并检索下一页的数据(这将引入一个小延迟,但可能非常值得)。处理这个问题的最佳方法可能是不让用户同时检索数以万计的记录 - 如果你给他们这个功能他们将使用它然后他们也会抱怨它的性能
对于快速客户端排序/分组/过滤,这是现实世界的必需品。我们的用户通常从服务器获取数千条记录,然后使用过滤器(我已经扩展)一次查看少量记录,对这些记录进行操作,然后修改过滤器以查看不同的一堆。让这些功能快速运行非常重要,因为它会对用户体验产生巨大影响。我在今年早些时候尝试了几个不同的组件集,发现它们在这些功能方面的性能差异很大,所以明智地选择:)
答案 2 :(得分:0)
我希望看到一个控制套件,它既可以处理订单满足时的并发问题,也可以使用队列或堆栈来解决数据冲突。我经常看到这个网格和列表控件非常漂亮,漂亮,并向您显示所有数据,但是当您有多个人处理同一组数据时,它们无法解决基本的concurreny问题。如果它自动锁定一个用户的行,防止重复工作,并自动记录错误消息,那么我可以看到购买控件套件。
答案 3 :(得分:0)
您无需一次加载所有数据,您可以在ObjectDataSource的xaml中指定最大负载。这将以指定大小的块加载数据。 在这里查看2个RIA服务视频: https://www.silverlight.net/getstarted/riaservices/
分页上有段可能对您有用。
注意(由于制作了这些视频,但部分程序集引用和语法略有改变,但核心功能仍然相同)