This topic describes the steps necessary to build a simple ASP.NET AJAX-enabled application which displays an AJAX-enabled Chart or Diagram.
On the File / New Project select "Visual C# / Web" and then select from the list on the right side "ASP.NET Web Application" in Visual Studio 2008 or "ASP.NET AJAX-Enabled Web Application" in Visual Studio 2005.
Open the source code for Default.aspx - from the Solution explorer right click on Default.aspx and select "View code". Add the following using directives:
For a Chart component:
C# |
Copy Code
|
---|---|
usingSystem.Drawing; using Nevron.GraphicsCore; using Nevron.Chart; using Nevron.Chart.WebForm; |
Visual Basic |
Copy Code
|
---|---|
Imports System.Drawing Imports Nevron.GraphicsCore Imports Nevron.Chart Imports Nevron.Chart.WebForm |
For a Diagram component:
C# |
Copy Code
|
---|---|
usingSystem.Drawing; using Nevron.GraphicsCore; using Nevron.Diagram; using Nevron.Diagram.WebForm; usingNevron.Diagram.Shapes; |
Visual Basic |
Copy Code
|
---|---|
Imports System.Drawing Imports Nevron.GraphicsCore Imports Nevron.Diagram Imports Nevron.Diagram.WebForm Imports Nevron.Diagram.Shapes |
Check if the following assemblies are referenced from your project:
For Nevron Chart:
web.config |
Copy Code
|
---|---|
<system.web> <!—- IIS 5 and IIS 6 related configuration --> <httpHandlers> <!--If you are using Nevron Chart for .NET--> <add path="NevronChart.axd" verb="*" type="Nevron.Chart.WebForm.NChartImageResourceHandler" validate="false" /> <!--If you are using Nevron Diagram for .NET--> <add path="NevronDiagram.axd" verb="*" type="Nevron.Diagram.WebForm.NDiagramImageResourceHandler" validate="false" /> </httpHandlers> </system.web> ... <system.webServer> <!—- IIS 7 related configuration --> <handlers> <!--If you are using Nevron Chart for .NET--> <remove name="NevronChart" /> <!--If you are using Nevron Diagram for .NET--> <remove name="NevronDiagram" /> ... <!--If you are using Nevron Chart for .NET--> <add name="NevronChart" preCondition="integratedMode" verb="*" path="NevronChart.axd" type="Nevron.Chart.WebForm.NChartImageResourceHandler" /> <!--If you are using Nevron Diagram for .NET--> <add name="NevronDiagram" preCondition="integratedMode" verb="*" path="NevronDiagram.axd" type="Nevron.Diagram.WebForm.NDiagramImageResourceHandler" /> </handlers> </system.webServer> |
If not, add the required xml configuration code.
Make sure a script manager exists on the web page.
From the designer, right-click on the Nevron web control, select Properties and set the AjaxEnabled property to true and also the AsyncAutoRefreshEnabled to true; change the AsyncRefreshInterval to 500.
Select the events tab of the property grid and double-click on the AsyncRefresh event. A new NChartControl1_AsyncRefresh/ NDrawingView1_AsyncRefreshevent handler will be created in your source code.
Add a simple initialization code for the inserted component in the Page_Load method.
For Nevron Chart that could be:
C# |
Copy Code
|
---|---|
if(NChartControl1.RequiresInitialization) { NChart chart = NChartControl1.Charts[0]; NLineSeries line = new NLineSeries(); line.Values.Add(10); line.Values.Add(20); line.Values.Add(30); line.Values.Add(40); line.BorderStyles[0] = new NStrokeStyle(Color.Red); line.BorderStyles[1] = new NStrokeStyle(Color.Blue); line.BorderStyles[2] = new NStrokeStyle(Color.Green); chart.Series.Add(line); } |
Visual Basic |
Copy Code
|
---|---|
If NChartControl1.RequiresInitialization Then Dim Chart As NChart = NChartControl1.Charts(0) Dim Line As NLineSeries = New NLineSeries() Line.Values.Add(10) Line.Values.Add(20) Line.Values.Add(30) Line.Values.Add(40) Line.BorderStyles(0) = New NStrokeStyle(Color.Red) Line.BorderStyles(1) = New NStrokeStyle(Color.Blue) Line.BorderStyles(2) = New NStrokeStyle(Color.Green) Chart.Series.Add(Line) End If |
C# |
Copy Code
|
---|---|
if(NDrawingView1.RequiresInitialization) { NDrawingView1.ViewLayout = CanvasLayout.Fit; NDrawingView1.DocumentPadding = new Nevron.Diagram.NMargins(10); NDrawingView1.Document.BeginInit(); NDrawingView1.Document.Bounds = new NRectangleF(0, 0, 420, 320); NDrawingView1.Document.BackgroundStyle.FrameStyle.Visible = false; NBasicShapesFactory factory = new NBasicShapesFactory(NDrawingView1.Document); NEllipseShape ellipse = factory.CreateShape((int)BasicShapes.Ellipse) as NEllipseShape; ellipse.Name = "myEllipse"; ellipse.Width = 250f; ellipse.Height = 250f; ellipse.Center = new NPointF(200, 200); ellipse.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.Navy, Color.White); NDrawingView1.Document.ActiveLayer.AddChild(ellipse); NDrawingView1.Document.EndInit(); } |
Visual Basic |
Copy Code
|
---|---|
If NDrawingView1.RequiresInitialization Then NDrawingView1.ViewLayout = CanvasLayout.Fit NDrawingView1.DocumentPadding = New Nevron.Diagram.NMargins(10) NDrawingView1.Document.BeginInit() NDrawingView1.Document.Bounds = New NRectangleF(0, 0, 420, 320) NDrawingView1.Document.BackgroundStyle.FrameStyle.Visible = False Dim Factory As NBasicShapesFactory = New NBasicShapesFactory(NDrawingView1.Document) Dim Ellipse As NEllipseShape = TryCast(Factory.CreateShape(CInt(BasicShapes.Ellipse)), NEllipseShape) Ellipse.Name = "myEllipse" Ellipse.Width = 250F Ellipse.Height = 250F Ellipse.Center = New NPointF(200, 200) Ellipse.Style.FillStyle = New NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.Navy, Color.White) NDrawingView1.Document.ActiveLayer.AddChild(Ellipse) NDrawingView1.Document.EndInit() End If |
Add a code that will modify the chart/diagram on auto refresh in the NChartControl1_AsyncRefresh/ NDrawingView1_AsyncRefreshmethod.
For Nevron Chart that could be:
C# |
Copy Code
|
---|---|
NLineSeries line = (NLineSeries)NChartControl1.Charts[0].Series[0]; if(line == null) return; line.Values.Add(DateTime.Now.Second); |
Visual Basic |
Copy Code
|
---|---|
NLineSeries Line = TryCast(NChartControl1.Charts(0).Series(0), NLineSeries) If Line is Nothing Then Return Line.Values.Add(DateTime.Now.Second) |
For Nevron Diagram that could be:
C# |
Copy Code
|
---|---|
NShape ellipse = NDrawingView1.Document.ActiveLayer.GetChildByName("myEllipse", 0) as NShape; if(ellipse == null) return; if(ellipse.Width == 250f) { ellipse.Width = 200f; ellipse.Height = 200f; } else { ellipse.Width = 250f; ellipse.Height = 250f; } |
Visual Basic |
Copy Code
|
---|---|
Dim Ellipse As NShape = TryCast(NDrawingView1.Document.ActiveLayer.GetChildByName("myEllipse", 0), NShape) If Ellipse is Nothing Then Return If Ellipse.Width = 250F Then Ellipse.Width = 200F Ellipse.Height = 200F Else Ellipse.Width = 250F Ellipse.Height = 250F End If |
Now start the application again - the page must display the inserted component initialized and animated.