本指南演示了如何把 WebChartControl 添加到 ASPxCallbackPanel (在其 callback 期间)。
Show Me |
---|
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E568。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。 |
-
新建一个或者打开现有的 ASP.NET Web 应用程序 (Visual Studio 2005、2008 或 2010)。
-
把所需的 程序集 添加到项目的“引用”列表中。
注意,如果更喜欢自动添加程序集 (通过把 WebChartControl 实例拖放到页面上),那么这会影响 Web 应用程序的 Web.config 文件。 要了解所作出的更改,请参阅 添加 Web 图表。
-
切换到 Default.aspx 页面的 设计 视图,并从 DX.10.2: Common Controls 工具箱标签页中,把 ASPxButton 控件拖放到页面上。
-
然后,单击按钮的智能标记。 在被调用的操作列表中,禁用 AutoPostBack 属性,并单击 Client-Side Events(客户端事件)... 链接。
在被调用的对话框中,从客户端 Click 事件处理程序中,调用 callback 面板的 PerformCallback()。
为了应用更改,并退出对话框,单击 OK 按钮。
-
现在,从 DX.10.2: Navigation & Layout 工具箱标签页中,把 ASPxCallbackPanel 控件拖放到页面上。
-
把它的 ClientInstanceName 属性设置为 panel,并以下列方式接管它的 Callback 事件。
C# 复制代码 using System; using DevExpress.XtraCharts; using DevExpress.XtraCharts.Web; using DevExpress.Web.ASPxClasses; using DevExpress.Web.ASPxCallbackPanel; // ... protected void ASPxCallbackPanel1_Callback(object sender, CallbackEventArgsBase e) { WebChartControl wbc = new WebChartControl(); wbc.Series.Add(new Series("Series", ViewType.Line)); wbc.Series[0].ArgumentScaleType = ScaleType.DateTime; wbc.Series[0].ValueScaleType = ScaleType.Numerical; Random r = new Random(); for (int i = 0; i < 5; i++) { wbc.Series[0].Points.Add(new SeriesPoint(DateTime.Today.AddDays(i), ((int)((r.NextDouble() * 100) * 10)) / 10.0)); } wbc.Width = ((ASPxCallbackPanel)sender).Width; ((ASPxCallbackPanel)sender).Controls.Add(wbc); }
Visual Basic 复制代码 Imports System Imports DevExpress.XtraCharts Imports DevExpress.XtraCharts.Web Imports DevExpress.Web.ASPxClasses Imports DevExpress.Web.ASPxCallbackPanel ' ... Protected Sub ASPxCallbackPanel1_Callback(ByVal sender As Object, _ ByVal e As CallbackEventArgsBase) Dim wbc As New WebChartControl() wbc.Series.Add(New Series("Series", ViewType.Line)) wbc.Series(0).ArgumentScaleType = ScaleType.DateTime wbc.Series(0).ValueScaleType = ScaleType.Numerical Dim r As New Random() For i As Integer = 0 To 4 wbc.Series(0).Points.Add(New SeriesPoint(DateTime.Today.AddDays(i), _ (CInt(Fix((r.NextDouble() * 100) * 10))) / 10.0)) Next i wbc.Width = (CType(sender, ASPxCallbackPanel)).Width CType(sender, ASPxCallbackPanel).Controls.Add(wbc) End Sub
运行此应用程序,并查看结果。