当前位置: 代码迷 >> .NET报表 >> mvc顶用mschart多Series导致x坐标显示不全
  详细解决方案

mvc顶用mschart多Series导致x坐标显示不全

热度:369   发布时间:2016-05-05 01:41:26.0
mvc中用mschart多Series导致x坐标显示不全
问题如下:
      Series1的x轴有a,c,d,e四个数据
      Series2的x轴有b,c,e,f,g五个
出来的柱状图中x轴只有五个点而不是a,b,c,d,e,f,g七个点

Series1,Series2的数据源分别为两个结构一样的DataView,绑定如下:
 Chart1.Series[status30].Points.DataBind(dataView1, "byvalue", "count", "LegendText=byvalue,YValues=count,ToolTip=count");


在线等……
------解决方案--------------------
数据?还是X轴的标签?
若有两个 series,在柱状图上数据有可能是被覆盖掉;
若是X轴标签的话,除非你设置按一定间隔显示,否则是控件自己默认的方式。
------解决方案--------------------

=======================
没有规律的话,你自己用算法来排序,设置X轴的间隔为1;


            DataTable dt = new DataTable();
            for (int i = 0; i < 10; i++)
            {
                dt.Columns.Add("name" + i, typeof(string));
            }
            chart1.Series[0].ChartType = SeriesChartType.Column;

            //测试数据
            DataRow dr = dt.NewRow();
            dr.ItemArray = new object[] { "王一", "赵二", "张三", "A1", "S2", "T5", "Y6", "X7", "孙九", "钱十" };
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr.ItemArray = new object[] { 12, 64, 34, 64, 33, 66, 88, 43, 83, 16 };
            dt.Rows.Add(dr);

            chart1.ChartAreas[0].AxisX.Interval = 1;
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                chart1.Series[0].Points.InsertXY(i, dt.Rows[0][i], dt.Rows[1][i]);
            }

------解决方案--------------------
这不是标签出错,是你的数据有问题,假如黄色在HZ21AB不显示,你要用 null 来占位,保证每一个 series的数据个数都是一致的,这样就不会错位了。
  相关解决方案