将数据与图表的点绑定

时间:2012-06-01 21:48:48

标签: c# asp.net .net charts

我正在使用coulmn图表,其中我想将表格的coulmn与系列的结合     我知道points.databind()方法。但是它首先采用什么类型的对象    参数???

.aspx代码:

<asp:Chart ID="Chart1" runat="server">
    <Series>
        <asp:Series Name="Series1">                
            </Points>
        </asp:Series>
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1">
        </asp:ChartArea>
    </ChartAreas>
</asp:Chart>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    assessdal d=new assessdal();
    Chart1.DataSource = d.showop1();
    Chart1.DataBind();

    Chart1.Series[0].Points.DataBind(?,"qno");
}

public DataSet showop1()
{
    SqlConnection con = dbconnect.GetConnection();
    SqlCommand cmd = new SqlCommand("select assessid, qno ,description, 

    option1,option2,option3,option4 from assessmenttest", con);
    SqlDataAdapter ad =new SqlDataAdapter(cmd);
    DataSet ds=new DataSet();
    ad.Fill(ds);
    return ds;
}

1 个答案:

答案 0 :(得分:-1)

如果我是对的,在那个例子中(从你采用上面的代码的地方),他们使用datareader来绑定图表。

你正在使用数据集进行绑定。

如下所示...如果你有更多行要绑定。 (超过1个系列)

    for each (DataRow row in dssearchgrid.Tables[0].Rows)
    {
        string seriesName = row["sno"].ToString();
        Chart1.Series.Add(seriesName);
        Chart1.Series[seriesName].ChartType = SeriesChartType.Line;
        Chart1.Series[seriesName].BorderWidth = 2;

 for (int colIndex = 1; colIndex < dssearchgrid.Tables[0].Columns.Count; colIndex++)
        {
            // For each column (column 1 and onward) add the value as a point
            string columnName = dssearchgrid.Tables[0].Columns[colIndex].ColumnName;
            if (row[columnName] != "")
            {
                YVal = Convert.ToInt32(row[columnName]);
            }
            else
            {
                YVal = 0;
            }

            Chart1.Series[seriesName].Points.AddXY(columnName, YVal);
        }

我知道这不是正确的方法......但这就是我所知道的: - )