【问题标题】:How to properly Set RadGridView.IsBusy while grouping如何在分组时正确设置 RadGridView.IsBusy
【发布时间】:2014-08-25 20:50:11
【问题描述】:

在我的场景中,Telerik Rad gridview 在对一定数量的数据进行分组时会在几秒钟内变得不负责任。我想做的就是在这段时间内显示某种加载指示器。我尝试简单地利用 OnGrouping、OnGrouped 事件来设置 IsBusy,如下所示:

OnGrouping(){  gridView.IsBusy = true;}
OnGrouped(){  gridView.IsBusy = false;}

但它不起作用。看起来 Telerik GridView 在 UI 线程中执行所有分组,而没有任何机会在分组完成之前继续进行“IsBusy = true”。

有人知道如何实现这一目标吗? 或者更一般地说,如何在“OnGrouping”事件期间强制更新布局?

提前致谢

【问题讨论】:

  • OnGrouping 是否为 gridView 或 collection 启动?
  • 这是 rad gridView 事件
  • 好吧,我没有遇到过telerik gridView,但通常你可以在与UI没有连接的CollectionViewSource上进行分组。显示一些代码如何执行分组。
  • 我不手动进行分组,但 RadGridView 封装了这样的逻辑。我只提供原始数据集(IQueryable),网格中所有未来的分组/排序/等都由控件自己处理。

标签: c# wpf telerik dispatcher radgridview


【解决方案1】:

我认为您没有任何选择。 UIElement 与 RadGridView 一样,必须在 UI 上创建,因此通过在后台线程中创建它然后将其分配给 UI 线程的方法不会发挥作用。在普通分组中,它是在 CollectionView 上进行的,所以我想它可能会同时进行,但正如你在你的情况下所说的 UIelement 负责它。

【讨论】:

  • 看起来 Telerik 中没有“内置”选项,至少我没有找到它,而且 Telerik 论坛支持除了同步数据源之外没有任何建议。这很奇怪,它肯定会限制 Telerik 网格视图在生产中的使用。
【解决方案2】:

您可以尝试将 RadGrid 放入 RadAjaxPanel。然后连接一个 RadAjaxLoadingPanel 以在网格更新时显示动画加载 gif 或一些文本。

演示:http://demos.telerik.com/aspnet-ajax/ajax/examples/loadingpanel/loadingimages/defaultcs.aspx

多科:http://www.telerik.com/help/aspnet-ajax/ajax-loadingpanel.html

【讨论】:

  • 不幸的是,我的 RadGridView 来自 WPF 世界,而不是来自 ASP.NET :)
猜你喜欢
  • 1970-01-01
  • 2012-01-16
  • 2011-07-03
  • 1970-01-01
  • 2021-11-12
  • 2020-10-17
  • 2019-06-25
  • 2014-03-22
  • 2023-03-21
相关资源
最近更新 更多