Frage

My ASPX part

<div runat="server" id="divMain">
    <asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1">
        <Series>
            <asp:Series Name="Series1" ChartType="Pie">
            <Points>

                //I want this part to come from code-behind

                //<asp:DataPoint AxisLabel="1 Star"  YValues="100" />
                //<asp:DataPoint AxisLabel="2 Star" YValues="123" />
                //<asp:DataPoint AxisLabel="3 Star" YValues="155" />
                //<asp:DataPoint AxisLabel="4 Star" YValues="245" />

            </Points>
            </asp:Series>
        </Series>
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1">

            </asp:ChartArea>
        </ChartAreas>
        <Legends>
            <asp:Legend Title="Test abc" />
        </Legends>
    </asp:Chart>
  </div>

My code-behind follows down:

protected void Page_Load(object sender, EventArgs e)
{
    double[] yValues = { 10, 27.5, 7, 12, 45.5 };
    string[] xNames = { "Mike", "John", "William", "George", "Alex" };

    Series series1 = new  Series("pie");
    series1.ChartType = SeriesChartType.Pie;
    series1.BorderWidth = 3;
    series1.ShadowOffset = 2;
    Chart1.Series[0].Points.DataBindXY(xNames, yValues);
    divMain.Controls.Add(Chart1);
}

But I am getting the following exception: "The DataSourceID of Chart1 must be the ID of a control of type IDataSource. A control with ID SqlDataSource1 could not be found."

War es hilfreich?

Lösung

Remove DataSourceID="SqlDataSource1" element from the Chart in your aspx page, it probably does not exist, and you don't need it as you try to fill the data to the chart programatically.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top