Joh*_*don 2 c# asp.net aspchart
我在 .asp.net 中有一个名为 chrt 的饼图。我希望在图表中以货币格式显示值而不是标签。我希望标签显示在图例中。我执行以下操作并在图表上显示值而不是标签,并且标签仍然显示在图例中。
chrt.Series[0].IsValueShownAsLabel = true;
Run Code Online (Sandbox Code Playgroud)
例子:
图表显示“12345.678”图例显示“销售”
我现在需要的只是让图表以美元显示。
如果我执行以下操作,它会将图表上的格式更改为货币,但不幸的是,会将图例中的标签替换为货币格式的值。
foreach (Series b in chrt.Series)
{
foreach (DataPoint c in b.Points)
{
//Sets both legend and chart value
c.Label = c.YValues[0].ToString("C");
}
}
Run Code Online (Sandbox Code Playgroud)
例子:
图表显示“$12345.68”图例显示“$12345.68”
我还尝试了下面的代码,但它将图例设置为值并将其格式化为货币,使图表上的值保持原样。
foreach (Series b in chrt.Series)
{
foreach (DataPoint c in b.Points)
{
//Sets just the legend to the dollar values
c.AxisLabel = c.YValues[0].ToString("C");
}
}
Run Code Online (Sandbox Code Playgroud)
例子:
图表显示“12345.678”图例显示“$12345.68”
我想要它展示的是
图表显示“$12345.68”图例显示“销售额”
我能解决这个问题的唯一方法就是不设置
chrt.Series[0].IsValueShownAsLabel = true;
Run Code Online (Sandbox Code Playgroud)
然后手动将标签和图例文本设置为我想要的系列级别。可以使用关键字 #VALY 和 #VALX,因此它将在运行时替换为值,并通过将格式字符串放在其后面的大括号内来应用格式。因此,在本例中,每个千位分隔符处都有一个带有 , 的美元符号,如果小数点左侧没有任何内容,则用 0 替换;如果没有任何内容,但最多只有小数点后 2 位,则用 0 替换小数点右侧。
foreach (Series b in chrt.Series)
{
b.Label = "#VALY{$#,##0.00}";
b.LegendText = "#VALX";
}
Run Code Online (Sandbox Code Playgroud)
例子:
12345.678 变为 12,345.67 美元
.1234 变为 0.12 美元
1234 变为 1,234.00 美元
| 归档时间: |
|
| 查看次数: |
8760 次 |
| 最近记录: |