Хотите отформатировать значения внутри круговой диаграммы в asp.net Chart Control - PullRequest
0 голосов
/ 12 марта 2019

Я хотел отформатировать значения внутри круговой диаграммы. Я использую элемент управления диаграммой asp.net.

значения поступают из базы данных и отображаются как «12345678», но я хочу показать их какэто «12 345 678».

я уже пробовал это

ChartAb.Series[0].Label = "#VALY{#,###}";

, оно преобразует значения в «12 345 678», но также изменяет легенду диаграммы, где метки заменяются значениями, такими как «Покупается» заменяетсяс "12,345,234", а оставшиеся заменяются на "32,123"

, поэтому для меня это бесполезно.Как можно получить формат запятой без изменения меток.

Я также попытался отформатировать значение в запросе SQL, он показывает результаты, как я хотел в сервере SQL, но не отображать этот формат на диаграмме.

здесьмой код страницы cs

    protected void Budget_Issuance_HandsetChart_Pie()
{
//    Convert.ToDecimal(number).ToString("#,##0.00");
    Budget_Issuance_Handset_Chart_Pie.Visible = true;
    string query = string.Format("select b.issuanceType, Format(SUM(b.budgetAmount), '##,##0') as Budget from tblbudget b inner join tblContract c on b.contractID=c.contractID where b.budgetType='Handset' " + queryVal+" group by b.issuanceType");
    DataTable dt = GetData(query);
    Budget_Issuance_Handset_Chart_Pie.DataSource = dt;
    foreach (Series series in Budget_Issuance_Handset_Chart_Pie.Series)
    {
        series.ChartType = SeriesChartType.Pie;
    }
    //      Chart1.Series[0].ChartType = (SeriesChartType)int.Parse("10");
    Budget_Issuance_Handset_Chart_Pie.Legends[0].Enabled = true;
    Budget_Issuance_Handset_Chart_Pie.Series[0].XValueMember = "issuanceType";
    Budget_Issuance_Handset_Chart_Pie.Series[0].YValueMembers = "Budget";
    Budget_Issuance_Handset_Chart_Pie.Series[0].IsValueShownAsLabel = true;
    Budget_Issuance_Handset_Chart_Pie.Series[0].Label = "#VALY{#,###}";

    Budget_Issuance_Handset_Chart_Pie.DataBind();
    //  UtilisedBudget(null,EventArgs.Empty);
}

а вот код страницы aspx

                    <asp:Chart ID="Budget_Issuance_Handset_Chart_Pie" runat="server" Height="400px" Width="500px" Visible="false">
                    <Titles>
                        <asp:Title ShadowOffset="3" Name="Items" />
                    </Titles>
                    <Legends>
                        <asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default"
                            LegendStyle="Row" />
                    </Legends>
                    <Series>
                        <asp:Series Name="Default" />
                    </Series>
                    <ChartAreas>
                        <asp:ChartArea Name="ChartAreaHandsetIssuance" BorderWidth="0" />
                    </ChartAreas>
                </asp:Chart>

спасибо

1 Ответ

0 голосов
/ 25 июля 2019

Вы также должны изменить формат легенды, если хотите, чтобы он отличался от метки.Вы делаете это с LegendText.Пример:

ChartAb.Series[0].LegendText = "#AXISLABEL";

Как написано в документации Microsoft https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.datavisualization.charting.legend

Если у вас есть круговая диаграмма и вы установили свойство Label, он также установит текст легенды взначение, которое вы установили для меток.Если вы хотите установить для текста другое значение, вы можете установить свойство LegendText.В большинстве случаев вы хотите установить для свойства LegendText значение "#AXISLABEL" или "#VALX".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...