Как добавить диаграмму, созданную в коде, на визуализированную HTML-страницу? - PullRequest
6 голосов
/ 16 марта 2010

Я пытаюсь создать элемент управления диаграммами .net в коде и вставить эту диаграмму в определенное место на веб-странице.

Вот моя HTML-страница:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="chart"></div>
    </form>
</body>
</html>

Вот код:

* +1007 *

Я хочу визуализировать элемент управления графиком внутри div с id = "chart"

Спасибо за помощь!

Ответы [ 3 ]

5 голосов
/ 16 марта 2010

Предполагается, что вы установили каркас диаграммы без каких-либо проблем: -

Вид: -

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="chart"></div>
        <asp:Chart id="Chart1" runat="server"/>
    </form>
</body>
</html>

Codebehind: -

using System;
using System.Drawing;
using System.Web.UI.DataVisualization.Charting;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
      //SET UP THE DATA TO PLOT  
        double[] yVal = { 80, 20 };
        string[] xName = { "Pass", "Fail" };

      //CREATE THE CHART
        // Don't need to create the chart because it's a control!

      //BIND THE DATA TO THE CHART
        Chart1.Series.Add(new Series());
        Chart1.Series[0].Points.DataBindXY(xName, yVal);

      //SET THE CHART TYPE TO BE PIE
        Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
        Chart1.Series[0]["PieLabelStyle"] = "Outside";
        Chart1.Series[0]["PieStartAngle"] = "-90";

      //SET THE COLOR PALETTE FOR THE CHART TO BE A PRESET OF NONE 
      //DEFINE OUR OWN COLOR PALETTE FOR THE CHART 
        Chart1.Palette = System.Web.UI.DataVisualization.Charting.ChartColorPalette.None;
        Chart1.PaletteCustomColors = new Color[] { Color.Blue, Color.Red };

      //SET THE IMAGE OUTPUT TYPE TO BE JPEG
        Chart1.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Jpeg;

      //ADD A PLACE HOLDER CHART AREA TO THE CHART
      //SET THE CHART AREA TO BE 3D
        Chart1.ChartAreas.Add(new ChartArea());
        Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;

      //ADD A PLACE HOLDER LEGEND TO THE CHART
      //DISABLE THE LEGEND
        Chart1.Legends.Add(new Legend());
        Chart1.Legends[0].Enabled = false;
    }
}

Выезд http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx

2 голосов
/ 16 марта 2010

Почему подход динамического рендеринга? Почему бы просто не определить тег как:

И установить атрибуты на элементе управления? В качестве альтернативы, вы можете попробовать поместить и установить текст в качестве обработанного ответа, который обернет его диапазоном. Вы можете попробовать другие элементы управления, чтобы сделать это, если вы получите сообщение об ошибке, например LiteralControl.

1 голос
/ 11 октября 2014

попробовать положить в aspx:

div id="chart" runat="server"

в коде:

this.chart.Controls.Add(Chart1);

В моем случае мне нужно создать более одного с данными из данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...