2014-12-29 1 views
0

Я работаю с System.Web.UI.DataVisualization.Charting для создания некоторых линейных диаграмм. Я хочу показать подсказки (значение x и y datapoint) при наведении мыши на точку данных серии. Как показано на графическом изображении, я хочу всплывающую подсказку, когда мышь наводится на красный круг. chart imageПоказать подсказку о серийных данных по mouseover, в System.Web.UI.DataVisualization.Charting

Я добавил series.ToolTip способ но, не работает. вот мой createSeries meothod

private System.Web.UI.DataVisualization.Charting.Series CreateSeries(List<X> xAxisData, List<Y> yAxisdata) 
    { 
     // Chart Series 
     System.Web.UI.DataVisualization.Charting.Series _series = 
      new System.Web.UI.DataVisualization.Charting.Series(this.SeriesNameList[this.seriesCount]); 
     _series.ChartType = this.ChartType; 

     // Bind the data 
     _series.Points.DataBindXY(xAxisData, yAxisdata); 

     // Set Default Properties 
     _series.Font = this.GetFontForSeries(); 
     _series.LabelForeColor = this.GetLabelColor(); 

     // Add Transparent Marker to increase mouse area for ToolTip 
     _series.MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Circle; 
     _series.MarkerSize = 7; 
     _series.ToolTip = "hello"; 

     //// Smart Labels 
     _series.SmartLabelStyle.Enabled = true; 
     _series.SmartLabelStyle.MinMovingDistance = 5; 
     _series.SmartLabelStyle.MaxMovingDistance = 50; 
     _series.SmartLabelStyle.MovingDirection = 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Top | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.TopLeft | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.TopRight | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Bottom | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.BottomLeft | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.BottomRight | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Left | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Right | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Center; 
     _series.SmartLabelStyle.IsOverlappedHidden = true; 
     _series.SmartLabelStyle.AllowOutsidePlotArea = System.Web.UI.DataVisualization.Charting.LabelOutsidePlotAreaStyle.Yes; 

     this.seriesCount++; 
     return _series; 
    } 
private void InitializeChart() 
    { 
     this.Chart.IsMapEnabled = false; 

     this.Chart.RenderType = System.Web.UI.DataVisualization.Charting.RenderType.ImageTag; 
     this.Chart.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Png; 
     this.Chart.AntiAliasing = System.Web.UI.DataVisualization.Charting.AntiAliasingStyles.Graphics; 
     this.Chart.TextAntiAliasingQuality = System.Web.UI.DataVisualization.Charting.TextAntiAliasingQuality.High; 
     this.CreateTitle(); 
     this.CreateLegends(); 
    } 

Может кто-нибудь мне помочь? Я искал некоторые из квестов, но не смог найти решение.

ответ

0

Вам нужно добавить всплывающую подсказку к точкам.

Точки. DataBindXY не имеет способа связывать расширенные свойства диаграммы, такие как всплывающие подсказки. (Points.DataBind появляется, кстати) Источник: http://blogs.msdn.com/b/alexgor/archive/2009/02/21/data-binding-ms-chart-control.aspx

Таким обходным путем является прохождение точек вашей серии и добавление всплывающей подсказки вручную к точкам. Вы можете сделать это, используя/изменяя код ниже. (#VALX и #VAL является одним из способов добавления координат XY без непосредственного считывания значения, другой способ будет считывать значения XY напрямую)

// Bind the data 
_series.Points.DataBindXY(xAxisData, yAxisdata); 

// Set Tooltips 
foreach(var point in _series.Points) 
{ 
    point.ToolTip = "(#VALX, #VAL)"; 
} 

// Set Default Properties 
_series.Font = this.GetFontForSeries(); 
_series.LabelForeColor = this.GetLabelColor(); 

Альтернативный способ не используя ключевые слова:

// Bind the data 
_series.Points.DataBindXY(xAxisData, yAxisdata); 

// Set Tooltips 
foreach(var point in _series.Points) 
{ 
    point.ToolTip = "(" + point.X + ", " + point.YValues[0] + ")"; 
} 

// Set Default Properties 
_series.Font = this.GetFontForSeries(); 
_series.LabelForeColor = this.GetLabelColor(); 
+0

Его все еще не работает. Есть ли какие-либо другие свойства, которые мне нужно установить? Я рисую диаграмму как ImageTag. Я задал вопрос, чтобы добавить эту функцию. Нужно ли добавлять туда какую-либо собственность? – root545

+0

Этот метод работал на моем конце, но моя тестовая среда использовала элемент управления диаграммой в среде winform. Я попытаюсь найти время для установки тестовой среды aspx позже. Но вам нужно сделать его с помощью тега , чтобы получить всплывающие подсказки из элемента управления диаграммы, поскольку он автоматически генерирует необходимый код, когда он отображается клиенту. – JHubbard80

+0

Я использую для отображения диаграммы. FYI – root545

Смежные вопросы