找回密码
 立即注册

QQ登录

只需一步,快速开始

amory626

高级会员

4

主题

12

帖子

1194

积分

高级会员

积分
1194

活字格认证

amory626
高级会员   /  发表于:2014-2-14 11:52  /   查看:10729  /  回复:7
你好

http://demo.componentone.com/ASP ... Chart/Overview.aspx

根据网上示例,我是使用以下方法来绑定数据

        this.C1LineChart1.SeriesList.Clear();

        var valuesX = new List<double?>();
        var valuesY = new List<double?>();

        foreach (DataTable table in GlobalDs.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                valuesX.Add(Convert.ToDouble(dr["SN"]));
                if (!DBNull.Value.Equals(dr[ControlItemForChartDropDownList.SelectedValue.ToString()]))
                    valuesY.Add(Convert.ToDouble(dr[ControlItemForChartDropDownList.SelectedValue.ToString()]));
                else
                    valuesY.Add(null);
            }
        }

        this.C1LineChart1.Axis.X.ValueLabelList.Clear();
        this.C1LineChart1.Axis.Y.ValueLabelList.Clear();
        this.C1LineChart1.Axis.Y.Text = ControlItemForChartDropDownList.SelectedValue.ToString();

        //serieslist
        var series = new LineChartSeries();
        this.C1LineChart1.SeriesList.Add(series);
        series.Markers.Visible = true;
        series.Markers.Type = MarkerType.Circle;
        series.Data.X.AddRange(valuesX.ToArray<double?>());
        series.Data.Y.AddRange(valuesY.ToArray<double?>());
        series.Label = ControlItemForChartDropDownList.SelectedValue.ToString();
        series.LegendEntry = true;


但若让用户重新绑定数据时
我虽然使用SeriesList.Clear()将之前的数据清空
坐标轴却依然保持在之前的状态

请问我该如何设置,才能让Chart在二次数据绑定时可以完全重绘。谢谢。

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-2-14 17:13:00
沙发
回复 1楼amory626的帖子

坐标轴的值通过 ChartAxes 类设置,可以参考下帮助文档看是否能解决你的问题:http://helpcentral.componentone. ... hartCore`3_Axis.htm
回复 使用道具 举报
amory626
高级会员   /  发表于:2014-2-17 08:43:00
板凳
回复 2楼iceman的帖子

你好

感谢您的解答。我确实是知道通过ChartAxes 类可以重新设置坐标轴的值
但即使我清空了ValueLabelList的值依然毫无变化

C1LineChart1.Axis.X.ValueLabelList.Clear();
C1LineChart1.Axis.Y.ValueLabelList.Clear();

不知道我是否遗漏了什么,或我思考方向是否有错误?谢谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-2-17 16:31:00
地板
回复 3楼amory626的帖子

是否在二次绑定之前把所有 series 清除?
  1. this.C1LineChart1.SeriesList.RemoveAt(0);
复制代码
回复 使用道具 举报
amory626
高级会员   /  发表于:2014-2-18 17:15:00
5#
回复 4楼iceman的帖子

您好:

我确实已将坐标轴的ValueLabelList与SeriesList清空,但依旧如故
  1. this.C1LineChart1.SeriesList.Clear();
  2. this.C1LineChart1.Axis.X.ValueLabelList.Clear();
  3. this.C1LineChart1.Axis.Y.ValueLabelList.Clear();
复制代码

我的问题是这样子的……
第一次绑定看起来很正常




但二次绑定时坐标轴不会跟着更新,比较高的点便突出Chart范围外了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-2-19 11:51:00
6#
回复 5楼amory626的帖子

请你尝试 demo 看能否解决问题,其中新增了:

  1.             C1LineChart1.Axis.X.AutoMax = false;
  2.             C1LineChart1.Axis.X.AutoMin = false;
  3.             C1LineChart1.Axis.Y.AutoMax = false;
  4.             C1LineChart1.Axis.Y.AutoMin = false;

  5.             C1LineChart1.Axis.Y.Min = 0;
  6.             C1LineChart1.Axis.Y.Max = 10;
  7.             C1LineChart1.Axis.X.Min = 0;
  8.             C1LineChart1.Axis.X.Max = 10;
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
amory626
高级会员   /  发表于:2014-2-19 15:35:00
7#
回复 6楼iceman的帖子

您好:

感谢您。通过手动指定坐标轴的Max和Min,确实让坐标轴在重新绑定时可以刷新了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-2-19 15:45:00
8#
回复 7楼amory626的帖子

不客气,有问题欢迎继续提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部