FlexChart
FlexChart
マーカー
機能
サンプル
設定
説明
チャートマーカー
このビューは、マウスポインタに追随しすべての系列のデータ値を表示する垂直マーカーを使用する折れ線グラフを示します。
ソース
MarkerController.cs
using System; using MvcExplorer.Models; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; namespace MvcExplorer.Controllers { public partial class FlexChartController : Controller { public ActionResult Marker() { ViewBag.DemoSettingsModel = new ClientSettingsModel { Settings = new Dictionary<string, object[]> { {"Lines", new object[]{"None", "Vertical", "Horizontal", "Both"}}, {"Alignment", new object[]{"Auto", "Right", "Left", "Bottom", "Top", "Left & Bottom", "Left & Top"}}, {"Interaction", new object[]{"None", "Move", "Drag"}} }, DefaultValues = new Dictionary<string, object> { {"Lines", "Vertical"}, {"Interaction", "Move"} } }; return View(_apple.Sales); } } }
Marker.cshtml
@{ ViewBag.DemoSettings = true; ClientSettingsModel demoSettingsModel = ViewBag.DemoSettingsModel; var style = new SVGStyle { StrokeWidth = 3 }; } @section Styles{ <style> /* Override the css Class to aviod the LineMarker being overlaied by parent nodes */ .tab-pane.pane-content.active { overflow: visible; } </style> } @section Scripts{ <script type="text/javascript"> function lineMarkerContent(hitInfo, pt) { var html = '', chart = hitInfo.series ? hitInfo.series.chart : undefined; if (!chart || !chart.series) { return html; } chart.series.forEach(function (s, i) { var ht = s.hitTest(new wijmo.Point(pt.x, NaN)), hostEle = s.hostElement, polyline; polyline = s.hostElement ? s.hostElement.getElementsByTagName("polyline")[0] : undefined; if (polyline && ht.x && ht.y !== null) { if (i == 0) { html += wijmo.Globalize.formatDate(ht.x, 'dd-MMM'); } html += '<div style="color:' + polyline.getAttribute('stroke') + '">' + ht.name + ' = ' + ht.y.toFixed(2) + '</div>'; } }); return html; } var chart, lineMarker; c1.documentReady(function () { chart = wijmo.Control.getControl("#@(demoSettingsModel.ControlId)"); lineMarker = c1.getExtender(chart, "LineMarker"); }); function customChangeLines(chart, value) { if (lineMarker) { lineMarker.lines = value; } } function customChangeAlignment(chart, value) { if (lineMarker) { if (value === "Left & Bottom") { lineMarker.alignment = 5; } else if (value === "Left & Top") { lineMarker.alignment = 7; } else if (value === "Left") { lineMarker.alignment = 1; } else if (value === "Top") { lineMarker.alignment = 6; } else if (value === "Right") { lineMarker.alignment = 0; } else if (value === "Bottom") { lineMarker.alignment = 4; } else { lineMarker.alignment = 2; } } } function customChangeInteraction(chart, value) { if (lineMarker) { lineMarker.interaction = value; } } </script> } <c1-flex-chart id="@demoSettingsModel.ControlId" binding-x="Date" chart-type="Line" interpolate-nulls="true"> <c1-items-source source-collection="Model"></c1-items-source> <c1-flex-chart-series binding="SalesInUSA" name="Sales In USA"></c1-flex-chart-series> <c1-flex-chart-series binding="SalesInJapan" name="Sales In Japan" style="@style"></c1-flex-chart-series> <c1-flex-chart-axis c1-property="AxisX" format="dd-MMM"></c1-flex-chart-axis> <c1-flex-chart-tooltip content=""></c1-flex-chart-tooltip> <c1-line-marker id="LineMarker" alignment="Auto" lines="Vertical" drag-content="true" interaction="Move" content="lineMarkerContent"> </c1-line-marker> </c1-flex-chart> @section Description { <h3> @Html.Raw(FlexChartRes.Marker_ChartMarker) </h3> <p>@Html.Raw(FlexChartRes.Marker_Text0)</p> }
マニュアル