J'essaie de créer un graphique pour afficher le pourcentage de livrets de réponses cochés et non cochés.Mais le graphique à secteurs n'affiche que la valeur non cochée qui est YValueMember. Comment résoudre ceci?ASP.NET Diagramme à secteurs affichant uniquement YValueMembers
protected void DropDown_Subjects_SelectedIndexChanged(object sender, EventArgs e)
{
Chart4.Visible = true;
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ConnectionString);
SqlCommand cmd = new SqlCommand("select checked_percent, unchecked_percent From(select COUNT(*) * 100.0/(select count(*)from[newexam2017].[dbo].[newexam2017] where sub_code = '" + DropDown_Subjects.SelectedValue + "') as checked_percent from[newexam2017].[dbo].[newexam2017] where CheckBy is not null and sub_code = '" + DropDown_Subjects.SelectedValue + "')checked,(select COUNT(*) * 100.0/(select count(*)from[newexam2017].[dbo].[newexam2017] where sub_code = '" + DropDown_Subjects.SelectedValue + "')as unchecked_percent from[newexam2017].[dbo].[newexam2017] where CheckBy is null and sub_code = '" + DropDown_Subjects.SelectedValue + "')unchecked", connection);
connection.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable ChartData = ds.Tables[0];
Chart4.DataSource = ChartData;
Chart4.Series[0].Points.DataBind(ChartData.DefaultView, "checked_percent", "unchecked_percent", "");
for (int i = 0; i < Chart4.Series[0].Points.Count; i++)
Chart4.Series[0].Points[i].Label = string.Format("{0:0.00}%", ChartData.Rows[i]["checked_percent"], "{0:0.00}%", ChartData.Rows[i]["unchecked_percent"]);
connection.Close();
}
Code asp:
<asp:Chart ID="Chart4" runat="server" BackColor="DarkSlateBlue" BackGradientStyle="LeftRight"
BorderlineWidth="0" Height="440px" Palette="SeaGreen" PaletteCustomColors="24, 0, 0"
Width="560px" BorderlineColor="128, 128, 255" OnLoad="Chart4_Load">
<Titles>
<asp:Title Name="DefaultTitle" Font="Trebuchet MS, 15pt, style=Bold"
Text = "Overall Scoring Progress" />
</Titles>
<%-- <Legends>
<asp:Legend Name="DefaultLegend" Enabled="True" Docking="Top" />
</Legends>--%>
<Series>
<asp:Series Name="Series1" IsValueShownAsLabel="true" YValuesPerPoint="10" ChartType="Pie"></asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea4" >
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
Ce que je veux:
ce que je reçois:
Utilisez-vous Highcharts? Si oui, il semble que vous n'utilisiez pas [Highcharts .NET] (http://dotnet.highcharts.com/) et vous pourriez envisager de l'utiliser, car il s'agit de la solution prise en charge par Highcharts pour l'intégration avec l'environnement .NET. –
Un graphique à secteurs peut uniquement afficher une valeur Y par point et ne contenir qu'une seule série. Jetez un coup d'oeil [ICI] (https://msdn.microsoft.com/fr-fr/library/dd456674.aspx) ;. Ou peut-être devriez-vous préciser quel résultat final vous voulez. Une image est toujours utile. – jsanalytics
Vous pouvez également créer une étiquette personnalisée comme expliqué [ICI] (https://stackoverflow.com/questions/42338288/how-to-display-2-sets-of-data-on-the-same-axis-of -asp-net-chart/42343528? noredirect = 1 # comment77429532_42343528). Faites juste attention de ne pas créer un graphique "trompeur", étant donné que dans ce cas vous travaillez déjà avec des pourcentages. – jsanalytics