StockPicker.aspx: <script language="VB" runat=server> Sub ChartBtn_Click(Sender as Object, E as EventArgs) chart.ImageUrl = "ImageGenerator_Vb.aspx?" chart.Visible = true For i=0 to Stocks.Items.Count-1 If (Stocks.Items(i).Selected = true) Then chart.ImageUrl = chart.ImageUrl & "symbols=" & Stocks.Items(i).Value & "&" End If Next End Sub </script> <html> <body> <form runat=server> <h1>Scott's Stock Picker</h1> <asp:checkboxlist id="Stocks" runat=server> <asp:listitem>MSFT</asp:listitem> <asp:listitem>SUN</asp:listitem> </asp:checkboxlist> <asp:button text="Chart Your Selected Stocks" OnClick="ChartBtn_Click" runat=server/> <hr> <asp:Image id="chart" ImageUrl="" Visible=false runat=server/> </form> </body> </html> ImageGenerator_VB.aspx: <%@ Page Language="VB" ContentType="image/jpeg" %> <%@ Import Namespace="System.Drawing" %> <%@ Import Namespace="System.Drawing.Drawing2D" %> <%@ Import Namespace="System.Drawing.Imaging" %> <%@ Import Namespace="ChartGenerator" %> <%@ OutputCache Duration="10" %> <script language="VB" runat=server> Function GetStockDetails(Symbol as String) as ChartLine Dim myChartLine as new ChartLine if (symbol = "msft") then Dim StockValues() as Single = { 60, 110, 120, 180, 185, 190, 240, 290 } myChartLine.Width = 5 myChartLine.Color = Color.Blue myChartLine.LineStyle = DashStyle.Solid myChartLine.Title = "Microsoft Corp. (MSFT)" myChartLine.Symbol = "MSFT" myChartLine.Values = StockValues return myChartLine elseif (symbol = "sun") then Dim StockValues() as Single = { 180, 155, 125, 60, 25, 15, 10, 3 } myChartLine.Width = 5 myChartLine.Color = Color.Red myChartLine.LineStyle = DashStyle.Dot myChartLine.Title = "Sun Corp. (Sun)" myChartLine.Symbol = "Sun" myChartLine.Values = StockValues return myChartLine end if return nothing End Function Sub Page_Load(Sender as Object, E as EventArgs) ' Generate Chart Data For Image.... Dim XAxes() as String = { "9:00AM", "9:30AM", "10:00AM", "11:00AM", "12:00AM", "1:00PM", "1:30PM" } Dim MyChartData as New ChartData MyChartData.YTickSize = 20 MyChartData.YMax = 250 MyChartData.YMin = 0 MyChartData.XAxisTitles = XAxes Dim Symbols() as String = Request.QueryString.GetValues("symbols") if (Not Symbols = Nothing) then for i=0 to Symbols.Length-1 Dim stockValue as ChartLine = GetStockDetails(symbols(i).ToLower) If (stockValue <> nothing) then myChartData.Lines.Add(stockValue) End if Next end if ' Create In-Memory BitMap of JPEG Dim MyChartEngine as New ChartEngine Dim StockBitMap as BitMap = MyChartEngine.DrawChart(600, 400, myChartData) ' Render BitMap Stream Back To Client StockBitMap.Save(Response.OutputStream, ImageFormat.JPEG)
|