如何在ASP.NET图表控件工具提示中显示detial数据 [英] How to display detial data in ASP.NET chart control tooltip

查看:96
本文介绍了如何在ASP.NET图表控件工具提示中显示detial数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我有一个问题,我想在图表控件工具提示中显示详细数据,但只能显示XValueMember(#VALX)和YValueMember(#VALY)。我的数据表有4列,它绑定到Chart Control。即

XValueMember = Colum1和YValueMember = Colum2。我想在ToolTip中显示所有列值。

我该怎么做...

有问候



我尝试过:



Hi
I have a problem that I want to display detail data in chart control ToolTip but only XValueMember(#VALX) and YValueMember(#VALY) can be show. My data table has 4 columns and it bind to Chart Control. i.e
XValueMember=Colum1 and YValueMember=Colum2. I wanna display all column values in ToolTip.
How I can do it...
With Regards

What I have tried:

<asp:Chart ID="Chart1" runat="server" ondatabound="Chart1_DataBound" 

        onload="Chart1_Load" >
        <legends>
            <asp:Legend Name="Ledgend1">
            
        </legends>
        <series>
            <asp:Series Name="Series1" IsValueShownAsLabel="true" CustomProperties="DrawingStyle=Pie, PieDrawingStyle=Concave, MaxPixelPointWidth=50"

                ShadowOffset="2" ChartType="Pie" XValueMember="Department" YValueMembers="Total" 

                Legend="Ledgend1"  >
            
        </series>
        <chartareas>
            <asp:ChartArea Name="ChartArea1">
            
        </chartareas>













  private DataTable GetDataTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Department");
            dt.Columns.Add("Male");
            dt.Columns.Add("Female");
            dt.Columns.Add("Total");


            for (int i = 1; i < 6; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Department"] = "Department" + i.ToString();
                int a = 10 + i;
                int b = 11 + i;
                dr["Male"] = a;
                dr["Female"] = b;
                dr["Total"] = a + b;
                dt.Rows.Add(dr);
            }
            return dt;
        }
 protected void Chart1_Load(object sender, EventArgs e)
        {
            DataTable dt = this.GetDataTable();
            Chart1.DataSource = dt;
Chart1.Series["Series1"].ToolTip="Department Name: #VALX \nTotal: #VALY";
        }

推荐答案

最后我通过在Chart_Load事件中编写一些代码来获得它。我创建了解决方案来自



Finally I got it by writing some codes in Chart_Load Event. I founded the solution from

protected void Chart1_Load(object sender, EventArgs e)
       {
           DataTable dt = this.GetDataTable();

           string[] x = new string[dt.Rows.Count];

           int[] y = new int[dt.Rows.Count];

           for (int i = 0; i < dt.Rows.Count; i++)
           {

               x[i] = dt.Rows[i]["Department"].ToString();

               y[i] = Convert.ToInt32(dt.Rows[i]["Total"]);

           }

           Chart1.Series["Series1"].Points.DataBindXY(x, y);

           foreach (Series series in Chart1.Series)
           {
               for (int i = 0; i < series.Points.Count; i++)
               {
                   series.Points[i].LegendText = dt.Rows[i]["Department"].ToString();
                   string toolTip = "";
                   foreach (DataRow dr in dt.Rows)
                   {
                       if (series.Points[i].LegendText == dr["Department"].ToString())
                       {
                           series.Points[i].ToolTip = "Department Name: " + dr["Department"].ToString() + "\n" +
                           "Male :" + dr["Male"].ToString() + "\n" + "Female :" + dr["Female"].ToString() + "\n" + "Total :" + dr["Total"].ToString();
                           series.Points[i].MapAreaAttributes = "onmouseover=\"DisplayTooltip('" + toolTip + "');\" onmouseout=\"DisplayTooltip('');\"";
                       }

                   }
               }
           }
       }


这篇关于如何在ASP.NET图表控件工具提示中显示detial数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆