Page 1 of 1
How to cache a graph in a Web Form
Posted: Wed Feb 01, 2006 4:46 pm
by 9079098
Hi,
When a Web Form page is postback, I don't want to generate the graph again. How I can store and retrieve my graph from the cache?
I tried to retrieve the session variable created by TempChart=Session, but the name of session variable change every time the page is post back.
Thanks for help me,
Sophie Morissette
Posted: Wed Feb 01, 2006 7:55 pm
by 9079098
I found the solution in the example ClickElementsChart.aspx
Code: Select all
// ****************************************************
//The data load code for WebChart1 demostrates a technique to save
//data between page calls. The Chart is saved as a TeeChart template
//to a session variable.
// ****************************************************
Steema.TeeChart.Chart ch1=WebChart1.Chart;
MemoryStream tmpChart=new MemoryStream();
if (Session["ch3"]==null)
{
//setup Chart
if (ch1.Series.Count<2)
{
ch1.Series.Add(new Steema.TeeChart.Styles.Points());
ch1.Series.Add(new Steema.TeeChart.Styles.Points());
}
((Points)ch1.Series[0]).Pointer.Pen.Visible=false;
((Points)ch1.Series[1]).Pointer.Pen.Color=Color.FromArgb(79,79,255);
ch1.Series[0].Color=Color.FromArgb(255,199,26);
ch1.Series[1].Color=Color.FromArgb(106,106,255);
ch1.Series[0].FillSampleValues(6);
ch1.Series[1].FillSampleValues(6);
//export Chart to a MemoryStream template
ch1.Export.Template.Save(tmpChart);
//save template to a Session variable
Session.Add("ch3",tmpChart);
}
else
{
//retrieve the session stored Chart
tmpChart=(MemoryStream)Session["ch3"];
//set the Stream position to 0 as the last read/write
//will have moved the position to the end of the stream
tmpChart.Position=0;
//import saved Chart
ch1.Import.Template.Load(tmpChart);
}
Sophie