找回密码
 立即注册

QQ登录

只需一步,快速开始

rijun

高级会员

55

主题

228

帖子

1115

积分

高级会员

积分
1115

活字格认证微信认证勋章

rijun
高级会员   /  发表于:2015-10-28 16:58  /   查看:7122  /  回复:7
回复 10楼Alice的帖子

上诉问题基本解决!
请教下当鼠标移动到柱子上后显示的东西只能是data.x或data.y或者是BarChartSeries里的label吗?还有其它可以获取的吗?
<script type="text/javascript">
                function hintContent() {
                        return this.data.label + '\n ' + this.y + '';
                }
</script>

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-10-28 17:16:00
沙发
回复 1楼rijun的帖子

感谢您对该问题的反馈。
这是通过图表的Hint接口实现的,通过hitContent方法,可以显示你需要的内容。
在这里显示的是data.label和y,也可以显示其他的,比如数据值,比如当前货币的格式,也可以做运算,请问您是需要显示什么呢?

在线示例参考:
http://demo.gcpowertools.com.cn/ ... arChart/Legend.aspx
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2015-10-29 08:32:00
板凳
回复 2楼Alice的帖子

两条数据如下
name  value  date
上海      20      2015-01-01
北京     42       2015-01-03

我x轴绑定name,y轴绑定value,鼠标滑上柱子的时候想显示date
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-29 11:13:00
地板
回复 3楼rijun的帖子

谢谢您提供的相关数据。

通过this.x和this.y分别可以显示x轴和y轴的数据。
你提到的日期Date和x,y轴有什么关系么?如果并不是Chart里的数据,而是您数据源里的数据,您只能通过查找,将你需要显示的数据显示出来. DataSource.date.
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2015-10-29 11:34:00
5#
回复 4楼Alice的帖子

前台代码
<script type="text/javascript">
    function hintContent() {
        return this.DataSource.date + ': ' + this.y + '';
        //return this.x +":"+this.y;
    }
</script>
<wijmo:C1BarChart ID="chart1" runat="server" Width="100%" Height="200"></wijmo:C1BarChart>

后台代码
protected void Page_Load(object sender, EventArgs e)
    {
        setChart1(this.chart1);
    }
private void setChart1(C1BarChart chart)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("name", typeof(string));
        dt.Columns.Add("value", typeof(double));
        dt.Columns.Add("date", typeof(DateTime));

        dt.Rows.Add("上海", 6, new DateTime(2014, 12, 1));
        dt.Rows.Add("北京", 10, new DateTime(2014, 12, 10));
        dt.Rows.Add("深圳", 19, new DateTime(2015, 1, 1));
        dt.Rows.Add("广州", 25, new DateTime(2014, 11, 1));
        dt.Rows.Add("山西", 7, new DateTime(2014, 12, 15));

        chart.SeriesList.Clear();


        chart.DataSource = dt;

        C1.Web.Wijmo.Controls.C1Chart.C1ChartBinding cb = new C1.Web.Wijmo.Controls.C1Chart.C1ChartBinding();
        cb.XField = "name";
        cb.XFieldType = C1.Web.Wijmo.Controls.C1Chart.ChartDataXFieldType.String;

        cb.YField = "value";
        cb.YFieldType = C1.Web.Wijmo.Controls.C1Chart.ChartDataYFieldType.Number;

        // add chartbinding object to the collection
        chart.DataBindings.Add(cb);
        chart.DataBind();

        chart.Hint.Content.Function = "hintContent";

        chart.Legend.Visible = false;
        chart.Horizontal = false;
    }

当鼠标移动上去以后就报错了,麻烦看下问题所在
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-29 12:29:00
6#
回复 5楼rijun的帖子

前台代码中,根本就不知道DataSource.date是什么。
C1Chart的Hint中没有这个接口。
我在2楼已经解释过了,如果没有将这个日期绑定给Chart,chart根本就不知道这个日期是什么,chart上是无法获取这个日期的。这个数据只是数据源里的字段,chart是二维的数据,从本质上说,这个字段和chart没有关系。因此不能从chart中去获取。
这已经不是产品问题,而是您的业务逻辑问题。
您需要显示什么日期,只要给chart它就能显示。所以您需要自己去数据源查找日期并交给chart,让他展示出来。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2015-10-29 12:32:00
7#
回复 6楼Alice的帖子

理解你的意思,谢谢了,有问题再联系
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-29 14:24:00
8#
回复 7楼rijun的帖子

好的,谢谢您的反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部