首页 > 解决方案 > 当图表没有任何内容可显示时如何显示“无数据”

问题描述

当图表不返回任何内容时,我想在视图上显示“无数据”标签。我正在使用 ChartDirector,这是一个 MVC 项目。

      [HttpGet]
    public ActionResult Sales()
    {            
        SALESChart1(ViewBag.Viewer = new RazorChartViewer(HttpContext, "chart1"));
        return View();
    }

图表代码:

    private void SALESChart1(RazorChartViewer viewer)
    {           
        
        string sQuery =   query goes here

        // The data for the bar chart
        double[] data = myDBTabletoUse.getCol(0);
        double[] data2 = myDBTabletoUse.getCol(1);

        string[] labels = myDBTabletoUse.getColAsString(2);

        chart stuff goes here

        // Output the chart
        viewer.Image = c.makeWebImage(Chart.PNG);

        // Include tool tip for the chart
        viewer.ImageMap = c.getHTMLImageMap("", "", "title='{xLabel}: {value} HL'");
   }

并查看显示图表

                        <th colspan="2">
                            @Html.Raw(ViewBag.Viewer.RenderHTML())
                        </th>
                        
                

标签: c#asp.net-mvcchart-director

解决方案


可能您可以创建一个空白图表,其中心为“无数据”文本。它像是:

XYChart c = null;

// Assume data.Length == 0 means no data
if (data.Length == 0)
{
   c = new XYChart(600, 400);
   c.addTitle2(Chart.Center, "No Data", "Arial Bold", 15);       
}
else
{
   c = new XYChart(......);
   ... draw chart as usual ...
}

// Output the chart
viewer.Image = c.makeWebImage(Chart.PNG);

推荐阅读