除了标题,ASP.NET图表图像是空白的

时间:2014-03-17 14:51:54

标签: c# asp.net charts

我试图在ASP中设置图表控件,只使用内置的图表控件。

它应该工作的方式是,当单击一个按钮时,页面上有一些填充数据的表,并且每个表旁边都是一个Scatter-Chart,应该填充表示该表的数据。我让控件在for语句中运行,为一年中的每个月添加一个点以及它的值。月份为X,值为Y。

我已经检查了我的调试,数据在那里,并且列出了点,但是当页面加载时,图表图像只显示图表的标题,没有任何图形。我觉得这与页面加载有关,但我不确定,也不确定如何合并页面加载函数。或者是否有一个函数我可以调用来渲染图表?我知道这不是图表图像位置的问题,我通过在ASP标记中放置一个点来测试,显示就好了。但由于某种原因,它不会显示我在代码隐藏中插入的点数。

到目前为止我的代码:

<asp:Chart ID="metricsQualityScatter" ImageStorageMode="UseImageLocation"   ImageLocation="~/TempImages/ChartPic_#SEQ(300,3)" runat="server" Width="500px" Height="500px">
    <Titles>
        <asp:Title Text="Metrics Quality Chart"></asp:Title>
    </Titles>
    <Series>
        <asp:Series Name="scatterSeries" ChartArea="qualityChartArea" MarkerSize="10" ChartType="Point">
        </asp:Series>
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="qualityChartArea"></asp:ChartArea>
    </ChartAreas>
</asp:Chart>


for(int y = 1; y < 13; y++)
{
    switch (y)
    { 
        case 1: metricsQualityScatter.Series[0].Points.AddXY("JAN", yValue; break;
        case 2: metricsQualityScatter.Series[0].Points.AddXY("FEB", yValue; break;
        case 3: metricsQualityScatter.Series[0].Points.AddXY("MAR", yValue; break;
        case 4: metricsQualityScatter.Series[0].Points.AddXY("APR", yValue; break;
        case 5: metricsQualityScatter.Series[0].Points.AddXY("MAY", yValue; break;
        case 6: metricsQualityScatter.Series[0].Points.AddXY("JUN", yValue; break;
        case 7: metricsQualityScatter.Series[0].Points.AddXY("JUL", yValue; break;
        case 8: metricsQualityScatter.Series[0].Points.AddXY("AUG", yValue; break;
        case 9: metricsQualityScatter.Series[0].Points.AddXY("SEP", yValue; break;
        case 10: metricsQualityScatter.Series[0].Points.AddXY("OCT", yValue; break;
        case 11: metricsQualityScatter.Series[0].Points.AddXY("NOV", yValue; break;
        case 12: metricsQualityScatter.Series[0].Points.AddXY("DEC", yValue; break;
    }
}

编辑:

好的,所以我现在知道在填充数据之前创建和绘制图像是一个问题。我尝试在我的page_load函数上为If(IsPostBack)使用一堆检查添加一个争论,以确保正在按下正确的视图和按钮来加载该数据,尝试捕获它,但没有骰子。奇怪的是,如果我直接调用填充我的数据的函数并从IsPostBack检查中绘制图形数据,它就可以很好地填充它。但是当我点击应该填充它的实际按钮时,我们又回到空白处。

所以,这不起作用:

        if (IsPostBack)
        {
            string myView = "";
            try
            {
                myView = pageTabs.GetActiveView().ID;
            }
            catch (Exception ex)
            { }
            if (myView == "metricsDataInputView")
            {
                if(!string.IsNullOrEmpty(currentCategory.Value))
                {
                    metrics_dataFill(currentCategory.Value);
                }
            }
        }

但是这样做了:

if(IsPostBack)
    metrics_dataFill("1");

我不知道为什么。我知道currentCategory也有效,因为表填充,但图像保持空白。我想我只需要找到一种方法来在用数据填充之后重新绘制图像。不知道该功能列出的图形为什么。

0 个答案:

没有答案