gpt4 book ai didi

ASP.NET 图表控件根据 X 轴标签上的 int 值设置月份名称

转载 作者:行者123 更新时间:2023-12-02 16:14:29 26 4
gpt4 key购买 nike

我想用相应的月份名称替换图表 X 轴上的数字 (1, 2, 3, ...)。

这是我的实际图表:

Actual chart

在填充SeriesDataView上,我有“MONTH”列,其中包含从1到12的值。我还必须手动将 MinimumMaximum 值设置为 0 和 13,否则我会丢失第一列和最后一列,因为第一列的开头之间缺少空格X 轴列和 Y 轴以及图表区域最后一个 X 轴列末端之间。

<ChartAreas>
<asp:ChartArea Name="ChartArea1">
<AxisX IsStartedFromZero="True" Title="Mese"
TitleFont="Segoe UI, 10pt, style=Bold" IsLabelAutoFit="False" LineColor="Gray"
Minimum="0" Maximum="13">
<MajorGrid LineColor="LightGray" />
<LabelStyle Font="Segoe UI, 9pt" />
</AxisX>
</asp:ChartArea>
</ChartAreas>

因此,如果我用月份名称替换 int 值,我还需要删除 Min 和 Max 参数,但我想保留现在的空间。

我尝试了此处和其他地方建议的一些解决方案,但没有结果。最简单、最有效、最直接的似乎是这样的:

Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "MMM";

但它不起作用。相反,我用“MMM”字符串代替整数值。

是否可以像在 GridView 上一样拦截 DataBind 事件,以用月份名称替换整数值?

最佳答案

我认为你必须使用自定义标签。我用过thisthis .

背后的代码:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebTest_1
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Chart1.Series[0].Points.AddXY(1, 83);
Chart1.Series[0].Points.AddXY(2, 63);
Chart1.Series[0].Points.AddXY(3, 53);
Chart1.Series[0].Points.AddXY(4, 77);
Chart1.Series[0].Points.AddXY(5, 46);
Chart1.Series[0].Points.AddXY(6, 99);
Chart1.Series[0].Points.AddXY(7, 72);
Chart1.Series[0].Points.AddXY(8, 39);
Chart1.Series[0].Points.AddXY(9, 42);
Chart1.Series[0].Points.AddXY(10, 71);
Chart1.Series[0].Points.AddXY(11, 58);
Chart1.Series[0].Points.AddXY(12, 63);

Chart1.Series[1].Points.AddXY(1 , 46);
Chart1.Series[1].Points.AddXY(2 , 72);
Chart1.Series[1].Points.AddXY(3 , 53);
Chart1.Series[1].Points.AddXY(4 , 39);
Chart1.Series[1].Points.AddXY(5 , 63);
Chart1.Series[1].Points.AddXY(6 , 71);
Chart1.Series[1].Points.AddXY(7 , 75);
Chart1.Series[1].Points.AddXY(8 , 99);
Chart1.Series[1].Points.AddXY(9 , 83);
Chart1.Series[1].Points.AddXY(10, 63);
Chart1.Series[1].Points.AddXY(11, 58);
Chart1.Series[1].Points.AddXY(12, 42);
}

protected void Chart1_Customize(object sender, EventArgs e)
{
foreach (var lbl in Chart1.ChartAreas[0].AxisX.CustomLabels)
{
int monthNumber = int.Parse(lbl.Text);
if (monthNumber >= 1 && monthNumber <= 12)
lbl.Text = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthNumber);
else
lbl.Text = "";
}
}
}
}

输出:

enter image description here

您需要分配自定义事件。

关于ASP.NET 图表控件根据 X 轴标签上的 int 值设置月份名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400364/

26 4 0