0

我已经尝试在整个下午谷歌搜索一些相关的东西,但无济于事,所以我希望你们中的一些人能帮助我。

我正在使用一个 asp:wizard 用户控件,它从用户那里收集各种值,并以表格的形式在最终的“结果页面”上显示这些值。

我创建了一个单独的“GraphEngine”类,它采用 Bool 参数决定要创建的图表类型(行/堆叠列)

//T13 is selection of line/stacked column chart type.
public Chart GetChart(bool T13)
    {

        Chart chart = new Chart();

        //define some shared properties no matter which ChartType.
        chart.Width = 900;
        chart.Height = 500;
        chart.ChartAreas.Add("ChartArea1");
        chart.Series.Add("Costs");
        chart.Series.Add("Stages");
        chart.Legends.Add("Legend1");

        if (T13 == true)
        {
            //chart = charttype1 and add values from Dictionary<string, bool>
        }
        else
        {
            //chart = charttype2 and add values..............
        }
        return chart;

    }

然后我在向导控件(acsx.cs 文件)的最后一步调用 GetChart。

GraphEngine GE = new GraphEngine(GraphData);
System.Web.UI.DataVisualization.Charting.Chart Chart =  GE.GetChart(t13);
//What should I be saying here to render Chart as "Chart" rather than literal
LiteralGraph.Text =  GE.GetChart(getSetGraphData, t13).ToString();

我不确定如何呈现图表

ID 为“Chart”的图表位于 .ascx 页面上 - 这不应该只填充来自 GE.GetChart(t13) 的返回信息;?

注意:如果我在用户控制向导步骤中创建/定义所有图表值和轴等,它会返回正常,但我需要分离图形生成,因为 ascx.cs 文件中有很多代码行(验证等)等等我想把我的 150 多行分开。这可能是做事的“正确”方式?

提前致谢。

4

1 回答 1

0

如果您要返回实际的图表控件 - 您需要将其添加到表单上的控件集合中。例如, makeLiteralGraph而不是 Literal - a Panel 然后您可以执行以下操作:

LiteralGraph.Controls.Add(GE.GetChart(getSetGraphData, t13));
于 2013-06-11T16:11:08.510 回答