读书人

WebChartControl数据绑定有关问题

发布时间: 2012-08-07 14:54:49 作者: rapoo

WebChartControl数据绑定问题
我使用的是DXperience的图标控件WebChartControl,现在对其数据绑定这一环节不甚了解,看到它也拥有datasource,所以推断出它也可以进行数据绑定。可是研究半天也没有结果,望有用过的达人能给出我一段数据绑定的源码,不要太复杂,说明怎么绑定字段就好。

数据源我给出,从DX官网下的

private DataTable CreateChartData() {
// Create an empty table.
DataTable table = new DataTable("Table1");

// Add three columns to the table.
table.Columns.Add("Month", typeof(String));
table.Columns.Add("Section", typeof(String));
table.Columns.Add("Value", typeof(Int32));

// Add data rows to the table.
table.Rows.Add(new object[] { "Jan", "Section1", 10 });
table.Rows.Add(new object[] { "Jan", "Section2", 20 });
table.Rows.Add(new object[] { "Feb", "Section1", 20 });
table.Rows.Add(new object[] { "Feb", "Section2", 30 });
table.Rows.Add(new object[] { "March", "Section1", 15 });
table.Rows.Add(new object[] { "March", "Section2", 25 });

return table;
}

[解决办法]
在页面上放一个sqldatasource or Orcaledatasource,然后把这个datasource绑定到WebChartControl控件。
当然connectionstring和sql语句事先都要写好,sqldatasource or Orcaledatasource里面要用到。connectionstring可以通过Web.Config设置好。
[解决办法]
ChartDirector
http://www.advsofteng.com/gallery.html
有源码,自己找一下
[解决办法]
Web的不清楚,
好象不是Web的可以这样:
Series series1 = new Series("series1", ViewType.Pie);
this.chartcontro.Series.Add(series1);
series1.DataSource = CreateChartData();
series1.ArgumentScaleType = ScaleType.Qualitative;//
series1.ArgumentDataMember = "Month";
series1.ValueScaleType = ScaleType.Numerical;
series1.ValueDataMembers.AddRange(new string[] { "Value" });
this.Controls.Add(this.chartcontrol);
this.chartcontrol.Dock = DockStyle.Fill;

[解决办法]
<%@ page language="C#"%>
<%@ import namespace="System.Data"%>
<%@ register tagprefix="web" namespace="WebChart" assembly="WebChart"%>
<script runat="server">
void Page_Load(object o, EventArgs e) {
CreateChart();
}

void CreateChart()
{
PieChart chart = new PieChart();
chart.DataSource = GetDataSet().Tables[0].DefaultView;
chart.DataXValueField = "Title";
chart.DataYValueField = "Price";
chart.DataLabels.Visible = true;
chart.DataLabels.ForeColor = System.Drawing.Color.Blue;
//也可以指定每个对象的颜色
//chart.Colors = new Color[] { Color.Red, Color.Blue, Color.Yellow, Color.Cyan, Color.Black, Color.RosyBrown,Color.Green,Color.Pink,Color.Purple,Color.GreenYellow};
chart.Shadow.Visible = true;
chart.DataBind();
chart.Explosion = 10;
ChartControl1.Charts.Add(chart);
ChartControl1.RedrawChart();
}

DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable table = ds.Tables.Add("My Table");
table.Columns.Add(new DataColumn("Title"));
table.Columns.Add(new DataColumn("Price", typeof(int)));

Random rnd = new Random();
for (int i = 0; i < 10; i++)
{
DataRow row = table.NewRow();


row["Title"] = "Title:" + i.ToString();
row["Price"] = rnd.Next(1, 100);
table.Rows.Add(row);
}
return ds;
}
</script>
<html>
<head>
<title>
Sample Pie</title>
</head>
<body>
<form id="form1" runat="server">
<web:chartcontrol runat="server" id="ChartControl1"
height="400" width="350" gridlines="none" legend-position="Bottom" />
</form>
</body>
</html>
路过。。

读书人网 >.NET

热点推荐