2025年3月4日 星期二

[研究]ASP.NET, WebForm, Chart 雷達圖測試(二)

[研究]ASP.NET, WebForm, Chart 雷達圖測試(二)

2025-03-04

環境:Visual Studio 2019 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

把Chart拖入「設計」畫面,會註冊元件。

Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" 
    Inherits="WebApplication1.Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
       <asp:Panel ID="ChartPanel" runat="server"></asp:Panel>
    </form>
</body>
</html>

Default2.aspx.cs

using System;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadChart();
            }
        }
        private void LoadChart()
        {
            for (int i = 0; i <= 63; i++)
            {
                Chart chart = new Chart
                {
                    Width = 300,
                    Height = 300
                };

                Series series = new Series("Series" + i)
                {
                    ChartType = SeriesChartType.Radar,
                    BorderWidth = 2
                };
                series.Points.AddXY("A", 83);
                series.Points.AddXY("B", 64);
                series.Points.AddXY("C", 95);
                series.Points.AddXY("D", 76);
                series.Points.AddXY("E", 57);
                chart.Series.Add(series);

                ChartArea chartArea = new ChartArea("ChartArea" + i);
                if ((i & 0b100000) == 0)
                    chartArea.AxisX.MajorGrid.Enabled = false; // 隱藏 X 軸網格線
                else
                    chartArea.AxisX.MajorGrid.Enabled = true; // 隱藏 X 軸網格線

                if ((i & 0b010000) == 0)
                    chartArea.AxisY.MajorGrid.Enabled = false; // 隱藏 Y 軸網格線
                else
                    chartArea.AxisY.MajorGrid.Enabled = true; // 隱藏 Y 軸網格線

                if ((i & 0b001000) == 0)
                    chartArea.AxisY.MinorGrid.Enabled = false;
                else
                    chartArea.AxisY.MinorGrid.Enabled = true;

                if ((i & 0b000100) == 0)
                    chartArea.AxisX.MinorGrid.Enabled = false;
                else
                    chartArea.AxisX.MinorGrid.Enabled = true;

                if ((i & 0b000010) == 0)
                    chartArea.AxisX.LineWidth = 0; // 隱藏 X 軸線條
                else
                    chartArea.AxisX.LineWidth = 1; // 隱藏 X 軸線條

                if ((i & 0b000001) == 0)
                    chartArea.AxisY.LineWidth = 0; // 隱藏 Y 軸線條
                else
                    chartArea.AxisY.LineWidth = 1; // 隱藏 Y 軸線條

                chart.ChartAreas.Add(chartArea);
                Label labelA = new Label
                {
                    ID = "LabelA" + i
                };
                Label labelB = new Label
                {
                    ID = "LabelB" + i
                };
                Label labelC = new Label
                {
                    ID = "LabelC" + i
                };
                Label labelD = new Label
                {
                    ID = "LabelD" + i
                };
                Label labelE = new Label
                {
                    ID = "LabelE" + i
                };
                Label labelF = new Label
                {
                    ID = "LabelF" + i
                };
                labelA.Text = "<br />i=" +  i.ToString() + "<br />chartArea.AxisX.MajorGrid.Enabled = " 
                    + chartArea.AxisX.MajorGrid.Enabled.ToString() + "<br />";
                labelB.Text = "chartArea.AxisY.MajorGrid.Enabled = " + chartArea.AxisY.MajorGrid.Enabled.ToString() + "<br />";
                labelC.Text = "chartArea.AxisX.MinorGrid.Enabled = " + chartArea.AxisX.MinorGrid.Enabled.ToString() + "<br />";
                labelD.Text = "chartArea.AxisY.MinorGrid.Enabled = " + chartArea.AxisY.MinorGrid.Enabled.ToString() + "<br />";
                labelE.Text = "chartArea.AxisX.LineWidth = " + chartArea.AxisX.LineWidth.ToString() + "<br />";
                labelF.Text = "chartArea.AxisY.LineWidth = " + chartArea.AxisY.LineWidth.ToString() + "<br />";

                ChartPanel.Controls.Add(labelA);
                ChartPanel.Controls.Add(labelB);
                ChartPanel.Controls.Add(labelC);
                ChartPanel.Controls.Add(labelD);
                ChartPanel.Controls.Add(labelE);
                ChartPanel.Controls.Add(labelF);
                ChartPanel.Controls.Add(chart);
            }
        }
    }
}

下圖

下圖

下圖

下圖,看不出 AxisX.LineWidth = 1 的影響



********************************************************************************

(完)

相關

沒有留言:

張貼留言