找回密码
 立即注册

QQ登录

只需一步,快速开始

pinebud

注册会员

6

主题

14

帖子

138

积分

注册会员

积分
138

微信认证勋章

pinebud
注册会员   /  发表于:2018-6-1 10:59  /   查看:3223  /  回复:1
本帖最后由 pinebud 于 2018-6-1 11:00 编辑

关于RangeSelector的初始化问题已经在帖子FlexChart 设定range selector 报错:System.OverflowException中提到原因。

当RangeSelector绑定的chart重新加载数据的时候,RangeSelector不能自动调整lowervalue和uppervalue到新的图表。
经过探索发现,使用以下代码:
  1. XRangeSelector.Dispose(); //去除旧的rangeselector在UI上的显示,否则新的rangeselector不会显示出来
  2. XRangeSelector = null; //设置rangeselector为null,这样renderd函数会重新生成新的
复制代码


注意,必须在renderd函数中初始化rangeselector!!!
  1. private void RangeSelectChart_Rendered(object sender, RenderEventArgs e)
  2.         {
  3.             if (XRangeSelector == null && RangeSelectChart.AxisX.ActualMin != RangeSelectChart.AxisX.ActualMax)
  4.             {
  5.                 XRangeSelector = new RangeSelector(RangeSelectChart);
  6.                 XRangeSelector.ValueChanged += XRangeSelector_ValueChanged;
  7.             }
  8.         }
复制代码

当调用dispose和设置XRangeSelector = null 之后,当rendered函数发生时,会再次生成新的rangeselector,是正常绑定新chart的。

希望对之后使用flexchart的人有帮助!有问题可以在楼下回复~~

1 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2018-6-1 14:50:05
沙发
谢谢您无私的分享。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部