DataBind 后图表未出现在 ASP.NET 中
Chart doesn't appear in ASP.NET after DataBind
我正在尝试在我的 ASP.NET 应用程序中显示一个简单的图表。
我试过在 aspx 页面中使用数组创建图表并设法做到了。
但是当我尝试显示数据库中的数据时,没有任何反应。
我已按照以下说明进行操作:
http://www.aspsnippets.com/Articles/Create-ASPNet-Chart-Control-from-Database-using-C-and-VBNet-Example.aspx
ddl部分除外。我选择一个日期并将其用于我的 sql 查询。
从数据库部分检索有效,根据我在调试中看到的,绑定也是如此。
但是由于某种原因,什么也没有出现。
这是来自 aspx 的代码:
<asp:Chart ID="ChartStats" runat="server" Visible = "false" >
<Titles>
<asp:Title ShadowOffset="3" Name="Items" />
</Titles>
<Legends>
<asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default" LegendStyle="Row" />
</Legends>
<Series>
<asp:Series Name="Default"></asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartStatsArea"></asp:ChartArea>
</ChartAreas>
</asp:Chart>
下面是代码:
String date = Convert.ToDateTime(DateFrom.Text).ToString("yyyyMMdd");
string query = "select HOUR_BUCKET, count(START_CALL_COUNT) from ictappo.traffic_summary t where EVENT_START_DATE=" + date + " group by HOUR_BUCKET order by HOUR_BUCKET asc";
DataTable dataTable = new DataTable("TRAFFIC_SUMMARY");
ApplicationTables ApplTbl = new ApplicationTables("TRAFFIC_SUMMARY");
String SQLError = "";
dataTable = ApplTbl.GetTRAFFIC_SUMMARY(query, ref SQLError);
int[] x = new int[dataTable.Rows.Count];
int[] y = new int[dataTable.Rows.Count];
for (int i = 0; i < dataTable.Rows.Count; i++)
{
x[i] = i;
y[i] = Convert.ToInt32(dataTable.Rows[i][1]);
}
ChartStats.Series[0].Points.DataBindXY(x, y);
ChartStats.Series[0].ChartType = SeriesChartType.Pie;
ChartStats.ChartAreas["ChartStatsArea"].Area3DStyle.Enable3D = true;
ChartStats.Legends[0].Enabled = true;
请帮帮我
更新:
我还尝试将此行添加到 x、y 的循环中(并删除 dataBINDXY 命令),但没有帮助:
ChartStats.Series["Default"].Points.AddXY(x[i], y[i]);
嗯,问题出在页面的渲染上,这段代码没问题。
我正在尝试在我的 ASP.NET 应用程序中显示一个简单的图表。 我试过在 aspx 页面中使用数组创建图表并设法做到了。 但是当我尝试显示数据库中的数据时,没有任何反应。
我已按照以下说明进行操作: http://www.aspsnippets.com/Articles/Create-ASPNet-Chart-Control-from-Database-using-C-and-VBNet-Example.aspx
ddl部分除外。我选择一个日期并将其用于我的 sql 查询。 从数据库部分检索有效,根据我在调试中看到的,绑定也是如此。 但是由于某种原因,什么也没有出现。
这是来自 aspx 的代码:
<asp:Chart ID="ChartStats" runat="server" Visible = "false" >
<Titles>
<asp:Title ShadowOffset="3" Name="Items" />
</Titles>
<Legends>
<asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default" LegendStyle="Row" />
</Legends>
<Series>
<asp:Series Name="Default"></asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartStatsArea"></asp:ChartArea>
</ChartAreas>
</asp:Chart>
下面是代码:
String date = Convert.ToDateTime(DateFrom.Text).ToString("yyyyMMdd");
string query = "select HOUR_BUCKET, count(START_CALL_COUNT) from ictappo.traffic_summary t where EVENT_START_DATE=" + date + " group by HOUR_BUCKET order by HOUR_BUCKET asc";
DataTable dataTable = new DataTable("TRAFFIC_SUMMARY");
ApplicationTables ApplTbl = new ApplicationTables("TRAFFIC_SUMMARY");
String SQLError = "";
dataTable = ApplTbl.GetTRAFFIC_SUMMARY(query, ref SQLError);
int[] x = new int[dataTable.Rows.Count];
int[] y = new int[dataTable.Rows.Count];
for (int i = 0; i < dataTable.Rows.Count; i++)
{
x[i] = i;
y[i] = Convert.ToInt32(dataTable.Rows[i][1]);
}
ChartStats.Series[0].Points.DataBindXY(x, y);
ChartStats.Series[0].ChartType = SeriesChartType.Pie;
ChartStats.ChartAreas["ChartStatsArea"].Area3DStyle.Enable3D = true;
ChartStats.Legends[0].Enabled = true;
请帮帮我
更新: 我还尝试将此行添加到 x、y 的循环中(并删除 dataBINDXY 命令),但没有帮助:
ChartStats.Series["Default"].Points.AddXY(x[i], y[i]);
嗯,问题出在页面的渲染上,这段代码没问题。