找回密码
 立即注册

QQ登录

只需一步,快速开始

mengmeng_032
高级会员   /  发表于:2011-8-11 19:17:00
41#
谢谢,不过我在这里调试你的程序,还是只能显示出五个呀....
而且,为什么Y轴的数据不是从到大的排列呢?
另外,请问X.DataField的内容必须为数据源里的内容吗?我只是想让它自动增加而已,就是数据库有几条就加几条数据,我是这样设置的:
  1. C1WebChart1.DataSource = ds;
  2.             C1WebChart1.DataBind();
  3.             C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].Y.DataField = "MODIFY_DATA";
  4.             //设置webchart的横坐标
  5.             C1.Win.C1Chart.ValueLabelsCollection VlColl = C1WebChart1.ChartArea.AxisX.ValueLabels;
  6.             VlColl.Clear();
  7.             for (int i = 0; i <= rows; i++)
  8.             {
  9.                 VlColl.Add(i, "第" + i + unit);
  10.                 [color=Red]C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].Y.DataField = Convert.ToString(i);[/color]            }
  11.             C1WebChart1.ChartArea.AxisX.AnnoMethod = AnnotationMethodEnum.ValueLabels;
  12.             C1WebChart1.ChartArea.AxisX.Max = 10;
  13.             C1WebChart1.ChartArea.AxisX.Min = 0.5;
复制代码
但是提示这个错误:

本帖子中包含更多资源

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

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-12 11:28:00
42#
昨天的Demo中列的类型没有设置,请参考下面的页面:

本帖子中包含更多资源

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

x
回复 使用道具 举报
mengmeng_032
高级会员   /  发表于:2011-8-23 20:44:00
43#

回复 42# Zera 的帖子

设置了横坐标之后确实能够显示全了,非常感谢!
不过我现在的业务又有了一些变化,我想把横坐标设置为数据源里的时间字段,但是该字段是date类型的,结果一个数据也显示不出来,如果换成字符串类型的就可以,请问我要如何将其转换成字符串类型的呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-24 11:39:00
44#

回复 43# mengmeng_032 的帖子

我将42楼中的代码修改了以下,横坐标可以显示日期:
  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {

  3.             DataSet ds = new DataSet();
  4.             DataTable dt = new DataTable();
  5.             dt.Columns.Add("ID",typeof(int));
  6.             dt.Columns.Add("UNIT_CODE");
  7.             dt.Columns.Add("PROCESS_CODE");
  8.             dt.Columns.Add("PRODUCT_CODE");
  9.             dt.Columns.Add("MEDIA_CODE");
  10.             dt.Columns.Add("PRODUCE_CONSUME");
  11.             dt.Columns.Add("UNIT_CONSUMPTION_TYPE");
  12.             dt.Columns.Add("AUTOMATIC_DATA");
  13.             dt.Columns.Add("MODIFY_DATA",typeof(int));
  14.             dt.Columns.Add("STATUS");
  15.             dt.Columns.Add("UNIT");
  16.             dt.Columns.Add("OPERATOR");
  17.             dt.Columns.Add("INPUT_DATE");
  18.             dt.Columns.Add("REMARK");
  19.             dt.Rows.Add(4, "", "11", "", "EE", "", "季", "", 12348, "", "", "", "2011/8/4", "");
  20.             dt.Rows.Add(2, "", "11", "", "EE", "", "季", "",12345, "", "", "", "2011/8/2", "");
  21.             dt.Rows.Add(3, "", "11", "", "EE", "", "季", "",12347, "", "", "", "2011/8/3", "");
  22.             dt.Rows.Add(1, "", "11", "", "EE", "", "季", "",12345, "", "", "", "2011/8/1", "");
  23.             dt.Rows.Add(5, "", "11", "", "EE", "", "季", "", 12348, "", "", "", "2011/8/5", "");
  24.             dt.Rows.Add(6, "", "11", "", "EE", "", "季", "", 12346, "", "", "", "2011/8/6", "");
  25.             dt.Rows.Add(7, "", "11", "", "EE", "", "季", "", 12345, "", "", "", "2011/8/7", "");
  26.             ds.Tables.Add(dt);

  27.             C1WebChart1.DataSource = ds.Tables[0];
  28.             C1WebChart1.DataMember = ds.Tables[0].TableName;

  29.             ChartDataSeriesCollection sc = C1WebChart1.ChartGroups[0].ChartData.SeriesList;
  30.             sc.RemoveAll();
  31.             ChartDataSeries s = sc.AddNewSeries();
  32.             s.X.DataField = "INPUT_DATE";
  33.             s.Y.DataField = "MODIFY_DATA";

  34.             C1WebChart1.ChartArea.AxisY.Min = 12340;
  35.             C1WebChart1.ChartArea.AxisY.Max = 12350;

  36.             
  37.         }
复制代码
回复 使用道具 举报
mengmeng_032
高级会员   /  发表于:2011-8-24 12:47:00
45#

回复 44# Zera 的帖子

这样是可以显示的,是因为18行中的  dt.Columns.Add("INPUT_DATE");  这句没有指定类型,默认为string了,如果改成  dt.Columns.Add("INPUT_DATE",typeof(DATE)); 就不出数据了。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-24 15:02:00
46#

回复 45# mengmeng_032 的帖子

你的数据源是执行SQL语句得到的吧,把SQL返回列中的Date类型的列转换为字符串即可:
  1. CAST([dateColumn] AS nvarchar(20))
复制代码
回复 使用道具 举报
mengmeng_032
高级会员   /  发表于:2011-8-24 16:46:00
47#

回复 46# Zera 的帖子

谢谢,请问这一句应该写在什么地方啊? 是这两句中间吗?
ds=getds();
C1WebChart1.DataSource = ds;
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-24 16:49:00
48#
你getds()内部是从哪儿取的数据,是从数据库取吗,如果从数据库取,就写到你执行的SQL中
回复 使用道具 举报
mengmeng_032
高级会员   /  发表于:2011-8-24 18:38:00
49#

回复 48# Zera 的帖子

是从数据库中取的,调用了存储过程,那再弱弱的问下,写到sql语句中是如何写的呢?
select * from a where ...
应该写在哪里呢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-24 21:32:00
50#
你现在的是select * from a where ...,可以修改为select col1,col2, CAST([col3] AS nvarchar(20)),... from a where ...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部