1

テーブルの列をシリーズの
ポイントにバインドしたい列チャートを使用しています。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;
}
4

1 に答える 1

-1

私が正しければ、その例では(uが上記のコードを取得したところから)、データリーダーを使用してグラフをバインドします。

Uはデータセットを使用してバインドしています。

次のようにします...バインドする行がさらにある場合。(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);
        }

私はこれが適切な方法ではないことを知っています...しかしこれは私が知っていることです:-)

于 2012-06-08T07:15:45.197 に答える