如何在ASP.NET图表控件工具提示中显示detial数据 [英] How to display detial data in ASP.NET chart control tooltip
本文介绍了如何在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屋!
查看全文