public ChartOptions() { XAxis = new XAxis(); YAxis = new YAxis(); Series = new SerieCollection(); Appearance = new Appearance.Appearance(); Lang = new Localization(); Exporting = new Exporting(); Colors = new ColorSet(); Legend = new Legend(); AjaxDataSource = new AJAXSource(); Tooltip = new ToolTip(); ClientId = ""; }
internal static string AjaxSourceScriptBuilder(AJAXSource ajaxSource) { if (string.IsNullOrWhiteSpace(ajaxSource.source)) { return(""); } if (!string.IsNullOrEmpty(ajaxSource.customFunction)) { return(string.Format("function(){{ {0} }}", ajaxSource.customFunction).Replace("[@DataSource]", ajaxSource.source)); } var scriptBuilder = new StringBuilder(); scriptBuilder.Append(@"chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.Append(@"_JSONUpdate = function() {jQuery.get('"); scriptBuilder.Append(ajaxSource.source); scriptBuilder.AppendLine(@"', function (data) {var allSeries = jQuery.parseJSON(data);"); if (ajaxSource.clearAll) { scriptBuilder.Append(@"for (var i = 0; i < chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.Append(".series.length; i++) {chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine(".series[i].remove(true);}"); } scriptBuilder.AppendLine(@"jQuery.each(allSeries, function (recordNo, currentSerie) {"); scriptBuilder.Append("if(typeof(chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine(".series[0]) == 'undefined')"); scriptBuilder.Append("chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine(".addSeries(currentSerie);"); scriptBuilder.AppendLine("else"); scriptBuilder.AppendLine("{"); scriptBuilder.AppendLine("var serieToUpdate = new Object();"); scriptBuilder.AppendLine("if(typeof(currentSerie.id) != 'undefined')"); scriptBuilder.Append("serieToUpdate = chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine(".get(currentSerie.id);"); scriptBuilder.AppendLine("else"); scriptBuilder.Append("serieToUpdate = chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.Append(".series[0];"); scriptBuilder.AppendLine("if(typeof(serieToUpdate) != 'undefined')"); scriptBuilder.AppendLine("{"); scriptBuilder.AppendLine("jQuery.each(currentSerie.data, function (pointNo, point) {"); scriptBuilder.Append("serieToUpdate.addPoint(point, false, "); scriptBuilder.AppendLine(ajaxSource.shift.ToString(CultureInfo.InvariantCulture).ToLower()); scriptBuilder.Append(@");});}}});chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine(".redraw();});};"); scriptBuilder.AppendLine((ajaxSource.onlyOnce) ? "setTimeout(function() {" : "setInterval(function() {"); scriptBuilder.Append(@"chart"); scriptBuilder.Append(ajaxSource.clientId); scriptBuilder.AppendLine("_JSONUpdate();}, "); scriptBuilder.AppendLine(ajaxSource.delay.ToString(CultureInfo.InvariantCulture)); scriptBuilder.Append(");"); return(scriptBuilder.ToString()); }