2016-11-20 58 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."; 
     } 
相關問題