Frage

Got ein Chart-Steuerelement Ich will aus einer Datentabelle machen.

Die Tabelle sieht wie folgt aus:

alt text http://www.freeimagehosting.net/uploads/5d02ce1558.png

das Diagramm i wie folgt aussehen wollen:

''' 
''''
'''''       '' '  
'''''       '' '
ECCTMP      ECCTMP       ECCTMP   
Monday      Tuesday      Wednesday

hoffen, dass dies Sinn macht für jeden Tag seine b y der Typ (E-Mail, Anrufe) gruppiert.

Ich bin gerade jetzt sicher, wie es Databind?

Billy

War es hilfreich?

Lösung

Wenn Sie gruppieren Serie in einem Balkendiagramm suchen, dann müssen Sie die Chart.DataBindTable Methode (MSDN).

Fügen Sie einfach den folgenden Code:

Chart1.DataBindTable(IEtable, "Day");

Das wird ein Diagramm erzeugen, die etwa wie folgt aussieht: alt text

Hier ist ein Dummy-Code als Test zu verwenden:

DataTable table = new DataTable();
table.Columns.Add("Day", typeof(string));
table.Columns.Add("Email", typeof(int));
table.Columns.Add("Calls", typeof(int));
table.Columns.Add("Contacts", typeof(int));
table.Columns.Add("Tasks", typeof(int));
table.Columns.Add("Meetings", typeof(int));
table.Columns.Add("Proposals", typeof(int));

table.Rows.Add("Monday", 1, 3, 3, 4, 5, 5);
table.Rows.Add("Tuesday", 1,6,8,2,0,3);
table.Rows.Add("Wednesday", 7, 6,3,0,2,1);
table.Rows.Add("Thursday", 1,5,5,9,3,1);
table.Rows.Add("Friday", 4,7,3,5,2,3);

//convert datatable to a IEnumerable form
var IEtable = (table as System.ComponentModel.IListSource).GetList();

//Bind the datatable to the chart using the DataBindTable method
Chart1.DataBindTable(IEtable, "Day");

Es ist auch möglich, die Etiketten zu haben scheinen, wie Sie mit ECCTMP beschreiben, sondern eine Legende hinzugefügt werden wahrscheinlich saubere aussehen.

Andere Tipps

protected void Page_Load(object sender, EventArgs e)
    {

        Title tl = new Title("Players Score Card");
        tl.Font = new System.Drawing.Font("vardana",12);
        //chrtGroup.Titles.Add(tl);
        //ChartArea a = new ChartArea("players");
        //a.AxisX.Title = "Player's Yearwise";
        //a.AxisY.Title = "Scores";
        //chrtGroup.ChartAreas.Add(a);


        DataTable dt = new DataTable();
        dt.Columns.Add("Years", typeof(int));
        dt.Columns.Add("Afridi", typeof(int));
        dt.Columns.Add("Akmal", typeof(int));
        dt.Columns.Add("Nasir", typeof(int));
        dt.Columns.Add("Shoib",typeof(int));
        dt.Columns.Add("Hafiz", typeof(int));


        Random rn = new Random();
        for (int i = 1; i < 10; i++)
        {
            DataRow dr = dt.NewRow();
            dr["Years"] = "200" +i;
            dr["Afridi"] = 700 + rn.Next(200,800);
            dr["Akmal"] = 500 + rn.Next(200,800);
            dr["Nasir"] = 400 + rn.Next(200,800);
            dr["Shoib"] = 800 + rn.Next(300,500);
            dr["Hafiz"] = 200 + rn.Next(200, 900);
            dt.Rows.Add(dr);
        }

        Series afridi = new Series("Afridi");
        Series akmal = new Series("Akmal");
        Series nasir = new Series("Nasir");
        Series shoib = new Series("Shoib");
        Series hafiz = new Series("Hafiz");

        afridi.IsValueShownAsLabel = true;
        akmal.IsValueShownAsLabel = true;
        nasir.IsValueShownAsLabel = true;
        shoib.IsValueShownAsLabel = true;
        hafiz.IsValueShownAsLabel = true;

        foreach (DataRow r in dt.Rows)
        {
            afridi.Points.AddXY(Convert.ToDouble(r["Years"]),Convert.ToDouble(r["Afridi"]));
            akmal.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Akmal"]));
            nasir.Points.AddXY(Convert.ToDouble(r["Years"]),Convert.ToDouble(r["Nasir"]));
            shoib.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Shoib"]));
            hafiz.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Hafiz"]));
        }

        chrtGroup.Series.Add(afridi);
        chrtGroup.Series.Add(akmal);
        chrtGroup.Series.Add(nasir);
        chrtGroup.Series.Add(shoib);
        chrtGroup.Series.Add(hafiz);

        chrtGroup.Legends.Add(new Legend("Afridi"));
        chrtGroup.Legends.Add(new Legend("Akmal"));
        chrtGroup.Legends.Add(new Legend("Nasir"));
        chrtGroup.Legends.Add(new Legend("Shoib"));
        chrtGroup.Legends.Add(new Legend("Hafiz"));
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top