我的ASPX部分
<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>
我的代码落后了:
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);
}
但是我收到以下异常:“Chart1
的DataSourceID必须是IDataSource
类型控件的ID。找不到ID为SqlDataSource1
的控件。”
答案 0 :(得分:1)
从aspx页面中的DataSourceID="SqlDataSource1"
中删除Chart
元素,它可能不存在,并且在尝试以编程方式将数据填充到图表时不需要它。