2016-11-20 33 views
0

我创建了一个图表并在mvc中使用它。它工作,因为我只需要调用视图内的动作,但现在我试图把它放在一个aspx页面,并在点击按钮时创建。请帮忙。 P.s我刚开始学习c#和aspx。 Tqvm先进。如何将以代码形式创建的图表放入aspx页面

public void graphClck(object sender, EventArgs e) 
    { 
     CodeDB2 DB = new CodeDB2(); 
     DB.Open(); 
     DataTable data = DB.GetTable("SELECT * FROM tblproduct"); 
     DB.Close(); 
     //Chart c = new Chart(width: 800, height: 200); 

     Chart c = new Chart(width: 800, height: 200) 
      .AddTitle("PRODUCT") 
      .AddSeries(
      chartType: "column", 
      name: "Products", 
      xValue: data.AsDataView(), xField: "product_name", 
      yValues: data.AsDataView(), yFields: "quantity") 
      .AddSeries(
      name: "Price", 
      yValues: data.AsDataView(), yFields: "price") 
      .AddLegend("PRODUCT PRICE AND QUANTITY") 
      .Write("png"); 
} 
在我的aspx设计页面

<asp:Button runat="server" ID="GraphButton" Text="Produce Graph" OnClick="graphClck"/> 
     <asp:Chart ID="Chart1" runat="server"></asp:Chart> 

回答

0

如果你的“图表”是控制,只需使用方法 myChart.DrawToBitmap(); 并设置该位图就像位图

客户视图
+0

你能更多地讨论这一个样本?即时通讯仍然是一个学生,所以我不熟悉这一点。再次感谢您的帮助。 –

+0

想想,你现在的问题现在是“如何在服务器端代码的页面元素上设置位图”。然后,从“图表”中创建一个位图,并将其设置为一个简单的动态png/jpg –

0

您需要设置图表控件的属性,而不是动态构建图表。

因此,而不是.AddTitle您可以使用Chart1.AddTitle(“标题在这里”)。

您会对其他属性采用相同的方法。

样品 这是我如何使用它在过去

List<DAL.QuoteChartData> QuoteChartData = DAL.GetQuotesChart(SessionStore.Current.UserID, StartDate, EndDate); 

     if (QuoteChartData.Count > 0) 
     { 
      //Populate Summary Chart 
      chrtQuoteSummary.Legends.Add("Legend1"); 
      chrtQuoteSummary.Legends["Legend1"].Docking = System.Web.UI.DataVisualization.Charting.Docking.Bottom; 

      chrtQuoteSummary.Series["Quotes"].IsValueShownAsLabel = true; 
      chrtQuoteSummary.Series["Quotes"].Legend = "Legend1"; 
      chrtQuoteSummary.Series["Quotes"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Doughnut; 

      QuoteChartData.ForEach(delegate (DAL.QuoteChartData R) 
      { 
       chrtQuoteSummary.Series["Quotes"].Points.Add(new System.Web.UI.DataVisualization.Charting.DataPoint() { AxisLabel = R.QuoteStatus, YValues = new double[] { double.Parse(R.Tot.ToString()) } }); 
       chrtQuoteSummary.Series["Quotes"].Points[chrtQuoteSummary.Series["Quotes"].Points.Count - 1].Color = Global.StatusColours[R.QuoteStatusID.ToString()]; 
      }); 
     } 
     else 
     { 
      lblQuotesMsg.Text = "No quote data found for the current month."; 
     } 
相关问题