最后一列未显示MS Chart

时间:2013-08-05 08:48:51

标签: c# asp.net mschart

我在Asp.net页面上显示列类型图表。代码如下:

private DataSet FetchDummyChartData()
    {
        DataSet ds = new DataSet();
        DataTable table = new DataTable();
        table.Columns.Add("Product", typeof(string));
        table.Columns.Add("Status", typeof(string));
        table.Columns.Add("Count", typeof(int));
        table.Rows.Add("FRA", "Completed", 20);
        table.Rows.Add("FRA", "Exceptions", 10);
        table.Rows.Add("Swaption", "Exceptions", 15);
        table.Rows.Add("Swaption", "Completed", 50);
        table.Rows.Add("Cap/Floor", "Exceptions", 40);
        table.Rows.Add("Cap/Floor", "Approval Pending", 10);
        table.Rows.Add("Single currency swap", "Completed", 70);
        table.Rows.Add("Single currency swap", "Approval Pending", 30);
        table.Rows.Add("Cross currency swap", "Completed", 60);
        table.Rows.Add("Cross currency swap", "Exceptions", 20);
        table.Rows.Add("IRS", "Completed", 40);
        table.Rows.Add("IRS", "Approval Pending", 70);
        table.Rows.Add("Single currency Option", "Completed", 70);
        table.Rows.Add("Single currency Option", "Exceptions", 50);
        table.Rows.Add("Some Derivative", "Completed", 40);
        table.Rows.Add("Some Derivative", "Exceptions", 10);
        table.Rows.Add("Some Derivative", "Approval Pending", 50);
        ds.Tables.Add(table);

        return ds;
    }
 Chart2.DataBindCrossTable(new DataView(FetchDummyChartData().Tables[0]), "Status", "Product", "Count", null);

问题在于,如果X轴上的项目包含大于3-4个项目(此处项目“FRA”,“IRS”等表示X轴),则不显示最后一列。请注意,这是一个多线图表。这是非常奇怪的行为。没有CSS /空间问题,我查了一下。

以下是截图: enter image description here

1 个答案:

答案 0 :(得分:1)

问题是您是使用Status对数据进行分组,但Status上的每个Product都没有X axis个值。所以系列中有EmptyPoints。现在你可以使用

Chart2.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, "series name");

IntervalTypeenum预定义的NumberYearsMonths等,但我们的IntervalType应为{{1} }}。我还没有检查是否可以定义自定义Status,因此最好的办法是检查表格IntervalType中每个Status的{​​{1}}条目是否缺失Product用默认值填充它们,然后图表将正确显示。

DataTable