2010-04-16 10 views
1

J'ai un datatable avec deux colonnes "Statut" (chaîne) et "Total" (entier).ASP: Contrôle de diagramme - Diagramme à secteurs de databind

Status  Total 
Success  34 
Missing  2 
Failed  10 

Je veux DataBind ceci dans un diagramme circulaire à chaque état par tranche mais je ne suis pas sûr de ce que la méthode de liant de données est nécessaire?

Merci, Jonesy

Répondre

7

Donnez ce un coup:

DataTable dt = new DataTable(); 
    dt.Columns.Add("Status"); 
    dt.Columns.Add("Total"); 

    dt.Rows.Add("Success", 34); 
    dt.Rows.Add("Missing", 2); 
    dt.Rows.Add("Failed", 10); 

    Chart1.DataSource = dt; 
    Chart1.Series["Series1"].XValueMember = "Status"; 
    Chart1.Series["Series1"].YValueMembers = "Total"; 
    Chart1.DataBind(); 

Mise à jour: La meilleure façon d'ajouter une légende est probablement du côté client:

<Legends> 
    <asp:Legend ... /> 
</Legends> 

Vous pouvez également ajouter par programme:

Chart1.Legends.Add("myLegend"); 
+0

qui a travaillé un festin mate! Merci! Une dernière chose si vous voulez :) comment ajouter une légende au graphique? – iamjonesy

+0

Mise à jour de la réponse avec des informations sur les légendes. –

2

J'ai fait quelques recherches aujourd'hui et j'ai trouvé cet article comme le meilleur.

est ici le code C# ci-dessus (par Chris) traduit VB.NET

Enjoy!

Dim dt As New DataTable() 
dt.Columns.Add("Status") 
dt.Columns.Add("Total") 

dt.Rows.Add("Success", 34) 
dt.Rows.Add("Missing", 2) 
dt.Rows.Add("Failed", 10) 

Chart1.DataSource = dt 
Chart1.Series("Series1").XValueMember = "Status" 
Chart1.Series("Series1").YValueMembers = "Total" 
Chart1.DataBind()