Page 1 of 1

Zooming in Asp.Net

Posted: Fri Apr 24, 2015 5:12 am
by 15669761
When using the ZoomTool in an Asp.Net project, the area zoomed on is sometimes not calculated correctly.
It seems to go along with the size of the window.

When the window is maximized everything works as expected. If it's not, the area zoomed on is too far
in the future. Changing the width of the window makes zooming work again sometimes, sometimes it
doesn't.

Re: Zooming in Asp.Net

Posted: Fri Apr 24, 2015 11:23 am
by 10050769
Hello Will

Unfortunately, after doing many tests, we can’t reproduce the problem here with a simple project. TeeChart's javscript code, that generates the location information should take into account frame offsets or scroll position of the page. Perhaps there is a problem with that code for the application you are running.

Does the problem occur in the same way on different browsers? If yes, could you tell us what browsers? Is it possible to send us a small sample application to help us reproduce the issue?

Thanks in advance,
regards.

Re: Zooming in Asp.Net

Posted: Fri Apr 24, 2015 11:39 am
by 15669761
I could recreate it on a smaller scale project.

aspx

Code: Select all

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TeeChartTest.WebForm1" %>

<%@ Register Assembly="TeeChart" Namespace="Steema.TeeChart.Web" TagPrefix="tchart" %>
<%@ Register Namespace="TeeChartTest" Assembly="TeeChartTest" TagPrefix="uc" %>

<!DOCTYPE html>

<style>
    body {
        height: 100%;
        width: 100%;
        margin: 0;
    }

    html {
        width: 1024px;
        margin: auto;
        height: 100%;
        min-height: 768px;
    }
</style>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        </div>

        <tchart:WebChart ID="WebChart" runat="server" Height="228px" Width="542px" GetChartFile="GetChart.aspx" TempChart="Session" />

        <p>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Add random point" />
            <asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="reset zoom" />
        </p>
    </form>
</body>
</html>

codebehind:

Code: Select all

using Steema.TeeChart.Styles;
using Steema.TeeChart.Tools;
using System;
using System.Collections;

namespace TeeChartTest
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private string SSN_KEY_CHART_DATA = "chartData";

        protected void Page_Load(object sender, EventArgs e)
        {
            InitializeChart();
            CheckZoom();
        }

        private void InitializeChart()
        {
            if (WebChart.Chart.Tools.Count == 0)
            {
                WebChart.Chart.Tools.Add(new ZoomTool());
            }

            RestoreState();

            if (WebChart.Chart.Series.Count == 0)
            {
                Line series1;
                WebChart.Chart.Aspect.View3D = false;
                WebChart.Chart.Legend.Visible = false;
                series1 = new Line(WebChart.Chart);

                series1.FillSampleValues();
                SaveState();
            }
        }

        private System.IO.MemoryStream ChartData
        {
            get
            {
                if (Page.Session[SSN_KEY_CHART_DATA] == null)
                {
                    Page.Session[SSN_KEY_CHART_DATA] = new System.IO.MemoryStream();
                }

                System.IO.MemoryStream tmp = Page.Session[SSN_KEY_CHART_DATA] as System.IO.MemoryStream;
                tmp.Seek(0, System.IO.SeekOrigin.Begin);

                return tmp;
            }
            set
            {
                Page.Session[SSN_KEY_CHART_DATA] = value;
            }
        }

        public void SaveState()
        {
            ChartData = new System.IO.MemoryStream();
            WebChart.Chart.Export.Template.Save(ChartData);
        }

        private void RestoreState()
        {
            if (ChartData.Length != 0)
            {
                WebChart.Chart.Import.Template.Load(ChartData);
            }
        }

        private void CheckZoom()
        {
            CheckZoom((ArrayList)Session[UniqueID + "Zoomed"]);
        }

        private void CheckZoom(ArrayList zoomedState)
        {
            ZoomTool zoomTool = (ZoomTool)WebChart.Chart.Tools[0];

            zoomedState = zoomTool.SetCurrentZoom(Page.Request, zoomedState);
            if (zoomedState == null)
            {
                Session.Remove(UniqueID + "Zoomed");
            }
            else
            {
                Page.Session.Add(UniqueID + "Zoomed", zoomedState);
            }
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            CheckZoom(null);
            Page_Load(sender, e);
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //WebChart.Chart.Series[0].Add()
        }
    }
}
The problem is browser-independent. Tested it with IE 10 and chrome. It is important that it works in IE10.

It seems to have something to do with the style.

Re: Zooming in Asp.Net

Posted: Fri Apr 24, 2015 3:11 pm
by 10050769
Hello Will,

Thank you for the code. We are working to reproduce a stable situation where the problem occurs. We try to give you an answer as soon as possible.

Thanks in advance,
regards.

Re: Zooming in Asp.Net

Posted: Mon Apr 27, 2015 10:40 am
by 10050769
Hello Will,

Finally, we have reproduced the problem you are experiencing, using Chrome and Firefox, but not using IE11. We have already added the problem in .Net Bugzilla tracker. Here's the link http://bugs.teechart.net/show_bug.cgi?id=1201.
Feel Free to add your email account to the ticket so you can be automatically notified when and update arrives.

Thanks in advance,

Re: Zooming in Asp.Net

Posted: Tue May 05, 2015 11:12 am
by 15669761
Hello Sandra,

The status of the Bug is: RESOLVED FIXED

What does this mean for me? Is the fix available in the next release, or is there a hotfix i can use?

Re: Zooming in Asp.Net

Posted: Thu May 07, 2015 2:03 pm
by narcis
Hello Will,

The fix will be included in the next maintenance release. There's no patch we can provide unless you are a source code customer. That being the case we would provide the necessary source code modifications.

Re: Zooming in Asp.Net

Posted: Thu May 07, 2015 6:28 pm
by Marc
Hello Will,

We've just reviewed this and can confirm that we'll be able to make a pre-release version available to you for tests. We'll contact you with the access details.

Regards,
Marc Meumann