控制器c#中的ej图表syncfusion访问图表属性

时间:2018-04-05 11:33:53

标签: javascript c# charts syncfusion

我有一个网格和一个图表。我需要将网格(现在正在工作)导出到excel中,但也包括图表。

所以我使用grid export excel方法并将图表(以及其他参数)作为这样的数据传递:

var data = {                     “ClientID”:$ scope.Model.ClientID,                    ....                     “Chart”:JSON.stringify($(“#MyChart”)。ejChart(“instance”),getCircularReplacer())                 };

  var grid = $("#" + table).ejGrid("instance");
    grid.export(url);

并将其作为字符串传递给控制器​​,以便将其转换为chartproperties

[System.Web.Http.ActionName("ExcelExport")]
        [HttpPost]
        public ActionResult ExportToExcel()
        {
string EJChart = _dictParams["Chart"].ToString();

ChartProperties cprop = MyGridHelper.ConvertChartObject(EJChart);
}

我从here获取的convertchart对象的代码:

转换后,当我尝试查找我需要在c#中绘制图表的系列,图例,点时,都没有值。似乎没有使用转换器。

所以稍微挖掘一下,看看那些是在模型中(json EJChart中的一个项目),但它一直说不能转换为null,所以我添加了null处理程序,它跳过了项目,使得它更值为null

底线: 如何使用js控制器中的c#获取图表的属性和值,但是使用网格导出而不是图表导出?示例代码假定导出将是ejchart,但我尝试将ejgrid与图表一起导出,因此我必须将其作为数据参数传递。

为什么转换器无法获取值,但我可以在json中看到它作为param传递,如下所示:

{"dragSettings":{"enable":false,"type":"xy"},"type":"column","splitMode":"value","splitValue":null,"splineType":"natural","cardinalSplineTension":0.5,"gapWidth":50,"pieOfPieCoefficient":0.6,"visibleOnLegend":"visible","enableAnimation":false,"animationDuration":null,"animationType":"linear","isClosed":true,"isTransposed":false,"isStacking":false,"columnWidth":0.7,"columnSpacing":0,"columnFacet":"rectangle","drawType":"line","doughnutCoefficient":0.4,"explodeOffset":25,"pyramidMode":"linear","boxPlotMode":"exclusive","funnelWidth":"11.6%","funnelHeight":"32.7%","positiveFill":null,"showMedian":true,"outlierSettings":{"shape":"circle","size":{"width":6,"height":6}},"cornerRadius":{"topLeft":0,"topRight":0,"bottomLeft":0,"bottomRight":0},"connectorLine":{"width":1,"opacity":1,"dashArray":null,"color":"#565656"},"errorBar":{"visibility":"hidden","mode":"vertical","type":"fixedValue","horizontalErrorValue":1,"verticalErrorValue":3,"horizontalPositiveErrorValue":1,"horizontalNegativeErrorValue":1,"verticalPositiveErrorValue":5,"verticalNegativeErrorValue":5,"direction":"both","cap":{"visible":true,"width":1,"length":20,"fill":"#000000"},"width":1,"opacity":1,"fill":"#000000"}

另外,在调试时,我看到系列,点等都在EJChart的模型中。

1 个答案:

答案 0 :(得分:0)

我们使用ajax为您的要求准备了一个样本。我们将Chart对象转换为json字符串并通过AJAX传递给控制器​​。在转换json之前,必须将chart.model.event设置为null。此事件API用于内部目的。现在我们可以使用convertchart方法使用此JSON获取图表属性。

请找到下面的代码段,为事件设置null。

    var chart = $("#ChartObject").ejChart("instance"); 
    chart.model.event = null; 
    var chartJson = JSON.stringify(chart.model); 

您可以从以下链接找到供您参考的样本,  http://www.syncfusion.com/downloads/support/directtrac/202840/ze/export-1342070198 如果您有任何疑虑,请回复我们。

谢谢,

婴儿。