Nevron .NET Vision Documentation
Common Server Settings

Both the Chart and Diagram ThinWeb controls expose a ServerSettings object that allows you to configure automatic update and how the images served to the client.

Automatic Update

Automatic update allows you to instruct the control to initiate an AJAX update on a specified time interval. This is especially useful when you build web applications that monitor real time data. In order to configure automatic update you need to do the following:

1. Set the EnableAutoUpdate property of the ServerSettings object to true.

2. Optionally modify the AutoUpdateInterval.

3. Register an AutoUpdate callback.

The following code snippets show how to automatically update a label in the Chart and the Diagram ThinWeb controls so that it shows the current server time:

Nevron Chart ThinWeb

C#
Copy Code

protected void Page_Load(object sender, EventArgs e)

{

if (!NThinChartControl1.Initialized)

{

// clear the chart
NThinChartControl1.Panels.Clear();

// add a label with the current time
NLabel
label = new NLabel(DateTime.Now.ToString());
NThinChartControl1.Panels.Add(label);
NThinChartControl1.AutoUpdateCallback =
new ChartAutoUpdateCallback();

// enable auto update
NThinChartControl1.ServerSettings.EnableAutoUpdate = true;
// refresh every second
NThinChartControl1.ServerSettings.AutoUpdateInterval = 1000;
}

}

[Serializable]
class ChartAutoUpdateCallback : INAutoUpdateCallback
{

#region INAutoUpdateCallback Members

public void OnAutoUpdate(Nevron.ThinWeb.NAspNetThinWebControl control)
{
NThinChartControl chartControl = (NThinChartControl)control;
chartControl.Labels[0].Text =
DateTime.Now.ToString();
chartControl.UpdateView();
}

public void OnAutoUpdateStateChanged(Nevron.ThinWeb.NAspNetThinWebControl control)

{

}

#endregion}

Nevron Diagram ThinWeb

C#
Copy Code

protected void Page_Load(object sender, EventArgs e)

{

if (!NThinDiagramControl1.Initialized)
{

// init the document
NDrawingDocument document = NThinDiagramControl1.Document;
document.BeginInit();
document.BackgroundStyle.FrameStyle.Visible =
false;
document.AutoBoundsPadding =
new Nevron.Diagram.NMargins(10f, 10f, 10f, 10f);
document.Style.FillStyle =
new NColorFillStyle(Color.White);
NTextShape timeShape = new NTextShape(DateTime.Now.ToString(), new NRectangleF(0, 0, 200, 50));
document.ActiveLayer.AddChild(timeShape);
NThinDiagramControl1.SizeToContent();
NThinDiagramControl1.AutoUpdateCallback =
new DiagramAutoUpdateCallback();

// enable auto update
NThinDiagramControl1.ServerSettings.EnableAutoUpdate = true;
// refresh every second
NThinDiagramControl1.ServerSettings.AutoUpdateInterval = 1000;
}

}

[Serializable]
class DiagramAutoUpdateCallback : INAutoUpdateCallback
{

#region INAutoUpdateCallback Members

public void OnAutoUpdate(Nevron.ThinWeb.NAspNetThinWebControl control)
{

NThinDiagramControl diagramChontrol = (NThinDiagramControl)control;
NTextShape textShape = (NTextShape)diagramChontrol.Document.ActiveLayer.GetChildAt(0);
textShape.Text =
DateTime.Now.ToString();
diagramChontrol.UpdateView();

}

public void OnAutoUpdateStateChanged(Nevron.ThinWeb.NAspNetThinWebControl control)
{

}

#endregion

}

All callbacks that you register must be marked as Serializable, because they are persisted with the controller in the control session state.
Image Response Mode

The image response mode allows you to configure how raster images generated by the control are served to the client. The following table lists the available options:

ImageResponseMode Description
Request Images are served in a separate request. This mode results in slower processing, but is supported by all browsers.
Embed Images are embedded in the AJAX response. This mode results in faster processing, but with slightly bigger traffic. Base 64 encoded images are not fully supported by IE browsers less than version 9.0. 
Auto The control will automatically decide whether to embed the image based on the detected browser accessing the control. This is the default.

The following code snippet shows how to switch the ImageResponseMode to Serve:

C#
Copy Code

thinControl.ServerSettings.ImageServeMode = ImageServeMode.Request;

Visual Basic
Copy Code
 

thinControl.ServerSettings.ImageServeMode = ImageServeMode.Request

Error Messages

By default the control will display error messages for exceptions that occured on the server - that helps track problems that arise during control request processing. If you wish to turn off error messages you need to set the DisplayErrorMessages property to false:

C#
Copy Code

thinControl.ServerSettings.DisplayErrorMessages = false;

Visual Basic
Copy Code

thinControl.ServerSettings.DisplayErrorMessages = False

Tile Cache Size

The TiledCacheSize property controls the maximum number of pixels in the that the control can cache on the client in the x and y direction. By default this property is set to 2000 pixels. To better understand the meaning of this property consider the following situation - if the user zooms in a chart with plot size of 400x200 pixels with a zoom factor of 10 this results in a virtual image of size 4000x2000 pixels. This image will be partitioned and only the visible tiles will be send to the client. When the user scrolls the currently visible viewport (which is still 400x200 pixels), tiles that are currently not present on the client will be requested from the server. The control keeps track of tiles that are not currently visible but loaded on the client, when the size of these tiles exceeds the value of this property they will be discarded.

It is important not to set too large values to this property as this can result in large memory usage on the client. Values in the range 1000-4000 produce optimal results. The following code shows how to extend the amount of cache size on the client:

C#
Copy Code

NThinChartControl1.ServerSettings.TileCacheSize = 3000;

Visual Basic
Copy Code

NThinChartControl1.ServerSettings.TileCacheSize = 3000

 

Some Text

Related Examples

Nevron Chart\Web Forms\ThinWeb\Auto Update
Nevron Chart\Mvc\ThinWeb\Auto Update

Nevron Diagam\Web Forms\ThinWeb\Auto Update
Nevron Diagam\Mvc\ThinWeb\Auto Update

 

 


©2017. Nevron Software LLC.

Send Feedback