1。在GAC中找到Microsoft.Office.Server.Chart.dll,并且在vs 2010 中引用。
2。配置web.config.
<compilation batch="false" debug="false">
<assemblies>
<!--1.chart配置-->
<add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<system.webServer>
<handlers>
<!--2.chart配置-->
<add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
 System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
<appSettings>
<!--3.chart配置,其中url可以指定其它文件夹路径-->
<add key="ChartImageHandler" value="storage=memory;timeout=20;URL=/_layouts/Images/MicrosoftChartControls/" />
</appSettings>
3。新建一个可视化部件,应用chart控件。
<%@ Register Assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
<asp:Chart ID="Chart1" runat="server">
<Series>
<asp:Series Name="Series1">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
4。后台新建一个DataTable数据源,并将其绑定在chart控件上(也可以是其他数据源)
public void Bind()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title", typeof(string));
dt.Columns.Add("Count", typeof(Int32));
for (int i = 0; i < 4; i++)
{
DataRow dr = dt.NewRow();
dr["Title"] = "test" + (i + 1);
dr["Count"] = i + 1;
dt.Rows.Add(dr);
}
Chart1.DataSource = dt;
Chart1.Series["Series1"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
Chart1.Series["Series1"].XValueMember = "title";
Chart1.Series["Series1"].YValueMembers = "count";
Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; //3D效果
Chart1.Series["Series1"].AxisLabel = "知识数量";
Chart1.DataBind();
}
5。部署该webpart.将其添加到sharepoint页面上。效果如下: