Spread for ASP.NET 11 Product Documentation
BeforeRenderMapAreas Event
Example 


FarPoint.Web.Chart Assembly > FarPoint.Web.Chart Namespace > FpChart Class : BeforeRenderMapAreas Event
Occurs before the control renders the map area to HTML.
Syntax
'Declaration
 
Public Event BeforeRenderMapAreas As BeforeRenderMapAreasHandler
'Usage
 
Dim instance As FpChart
Dim handler As BeforeRenderMapAreasHandler
 
AddHandler instance.BeforeRenderMapAreas, handler
public event BeforeRenderMapAreasHandler BeforeRenderMapAreas
Event Data

The event handler receives an argument of type BeforeRenderMapAreasEventArgs containing data related to this event. The following BeforeRenderMapAreasEventArgs properties provide information specific to this event.

PropertyDescription
Gets or sets the collection contains MapArea definitions.  
Example
This example uses the BeforeRenderMapAreas event.
protected void Page_Load(object sender, EventArgs e)
    {

        FpChart1.RenderMapArea = true;
        FpChart1.BeforeRenderMapAreas+=new FarPoint.Web.Chart.BeforeRenderMapAreasHandler(FpChart1_BeforeRenderMapAreas);

        FarPoint.Web.Chart.BarSeries series = new FarPoint.Web.Chart.BarSeries();
        series.SeriesName = "Series 0";
        series.Values.Add(2.0);
        series.Values.Add(4.0);
        series.Values.Add(3.0);
        series.Values.Add(5.0);
        FarPoint.Web.Chart.YPlotArea plotArea = new FarPoint.Web.Chart.YPlotArea();
        plotArea.Location = new System.Drawing.PointF(0.2f, 0.2f);
        plotArea.Size = new System.Drawing.SizeF(0.6f, 0.6f);
        plotArea.Series.Add(series);
        FarPoint.Web.Chart.LabelArea label = new FarPoint.Web.Chart.LabelArea();
        label.Text = "Bar Chart";
        label.Location = new System.Drawing.PointF(0.5f, 0.02f);
        label.AlignmentX = 0.5f;
        label.AlignmentY = 0.0f;
        FarPoint.Web.Chart.LegendArea legend = new FarPoint.Web.Chart.LegendArea();
        legend.Location = new System.Drawing.PointF(0.98f, 0.5f);
        legend.AlignmentX = 1.0f;
        legend.AlignmentY = 0.5f;
        FarPoint.Web.Chart.ChartModel model = new FarPoint.Web.Chart.ChartModel();
        model.LabelAreas.Add(label);
        model.LegendAreas.Add(legend);
        model.PlotAreas.Add(plotArea);      
        FpChart1.Model = model;
}

 protected void FpChart1_BeforeRenderMapAreas(object sender, FarPoint.Web.Chart.BeforeRenderMapAreasEventArgs e)
    {
        string scriptFormat = "showHitTestInfo('{0}','{1}','{2}');";
        foreach (FarPoint.Web.Chart.MapArea item in e.MapAreas)
        {
            FarPoint.Web.Chart.SeriesHitTest ht = this.FpChart1.HitTest(FarPoint.Web.Chart.MapAreaInfo.Parse(item.MapAreaInfo)) as FarPoint.Web.Chart.SeriesHitTest;
            if (ht != null)
            {
                string script = string.Format(scriptFormat, ht.Series.SeriesName, ((FarPoint.Web.Chart.BarSeries)ht.Series).CategoryNames[ht.PointIndex], ((FarPoint.Web.Chart.BarSeries)ht.Series).Values[ht.PointIndex]);
                item.Attributes.Add("onmouseover", script);
            }
        }
    }

ASPX Page:

<script type="text/javascript">

        function showHitTestInfo(seriesName, category, value) {
            alert(seriesName);
            alert(category);
            alert(value);
        };
    </script>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Me.IsPostBack) Then Return

        FpChart1.RenderMapArea = True
        Dim series As New FarPoint.Web.Chart.BarSeries()
        series.SeriesName = "Series 0"
        series.Values.Add(2.0)
        series.Values.Add(4.0)
        series.Values.Add(3.0)
        series.Values.Add(5.0)
        Dim plotArea As New FarPoint.Web.Chart.YPlotArea()
        plotArea.Location = New System.Drawing.PointF(0.2F, 0.2F)
        plotArea.Size = New System.Drawing.SizeF(0.6F, 0.6F)
        plotArea.Series.Add(series)
        Dim label As New FarPoint.Web.Chart.LabelArea()
        label.Text = "Bar Chart"
        label.Location = New System.Drawing.PointF(0.5F, 0.02F)
        label.AlignmentX = 0.5F
        label.AlignmentY = 0.0F
        Dim legend As New FarPoint.Web.Chart.LegendArea()
        legend.Location = New System.Drawing.PointF(0.98F, 0.5F)
        legend.AlignmentX = 1.0F
        legend.AlignmentY = 0.5F
        Dim model As New FarPoint.Web.Chart.ChartModel()
        model.LabelAreas.Add(label)
        model.LegendAreas.Add(legend)
        model.PlotAreas.Add(plotArea)
        FpChart1.Model = model
    End Sub

Protected Sub FpChart1_BeforeRenderMapAreas(ByVal sender As Object, ByVal e As FarPoint.Web.Chart.BeforeRenderMapAreasEventArgs) Handles FpChart1.BeforeRenderMapAreas       
        Dim scriptFormat As String = "showHitTestInfo('{0}','{1}','{2}');"
        For Each item As FarPoint.Web.Chart.MapArea In e.MapAreas
            Dim ht As FarPoint.Web.Chart.SeriesHitTest = TryCast(Me.FpChart1.HitTest(FarPoint.Web.Chart.MapAreaInfo.Parse(item.MapAreaInfo)), FarPoint.Web.Chart.SeriesHitTest)
            If ht IsNot Nothing Then
                Dim script As String = String.Format(scriptFormat, ht.Series.SeriesName, DirectCast(ht.Series, FarPoint.Web.Chart.BarSeries).CategoryNames(ht.PointIndex), DirectCast(ht.Series, FarPoint.Web.Chart.BarSeries).Values(ht.PointIndex))
                item.Attributes.Add("onmouseover", script)
            End If
        Next
    End Sub


ASPX Page:

<script type="text/javascript">

        function showHitTestInfo(seriesName, category, value) {
            alert(seriesName);
            alert(category);
            alert(value);
        };
    </script>
See Also