Skip to content

Commit 7f74c0d

Browse files
authored
Merge pull request #485 from apexcharts/fix-legend-click-no-axis
Fixed OnLegendClick on NoAxisChart
2 parents 6bcc426 + 07a024d commit 7f74c0d

File tree

6 files changed

+77
-15
lines changed

6 files changed

+77
-15
lines changed

docs/BlazorApexCharts.Docs/Components/ChartTypes/PieCharts/LabelFormatter.razor

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<DemoContainer>
22
<ApexChart TItem="Order"
3-
Title="Order Gross Value" Options=options Debug>
3+
Title="Order Gross Value" Options=options>
44

55
<ApexPointSeries TItem="Order"
66
Items="Orders"
@@ -25,6 +25,5 @@
2525
return w.config.series[seriesIndex];}"
2626
};
2727

28-
2928
}
30-
}
29+
}
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
<DemoContainer>
22
<ApexChart TItem="Order"
3-
Title="Order Value">
3+
Title="Order Value" OnXAxisLabelClick=XAxisLabelClick>
44

55
<ApexPointSeries TItem="Order"
66
Items="orders"
77
Name="Gross Value"
88
SeriesType="SeriesType.Radar"
99
XValue="@(e => e.Country)"
1010
YAggregate="@(e => e.Sum(e => e.GrossValue))"
11-
OrderByDescending="e=>e.Y"
12-
ShowDataLabels />
11+
ShowDataLabels
12+
OrderByDescending="e=>e.Y" />
1313

1414
<ApexPointSeries TItem="Order"
1515
Items="orders"
1616
Name="Net Value"
1717
SeriesType="SeriesType.Radar"
1818
XValue="@(e => e.Country)"
1919
YAggregate="@(e => e.Sum(e => e.NetValue))"
20-
OrderByDescending="e=>e.Y"
21-
/>
20+
OrderByDescending="e=>e.Y" />
2221
</ApexChart>
2322
</DemoContainer>
2423

2524
@code {
2625
private List<Order> orders { get; set; } = SampleData.GetOrders();
27-
28-
29-
30-
}
26+
private void XAxisLabelClick(XAxisLabelClicked<Order> data)
27+
{
28+
var gg = data.LabelIndex;
29+
}
30+
}

docs/BlazorApexCharts.Docs/Components/Events/LegendClick/LegendClick.razor

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
<Basic />
1313
</Snippet>
1414
</CodeSnippet>
15+
16+
<CodeSnippet Title="No Axis Chart" ClassName=@typeof(NoAxisChart).ToString()>
17+
<Snippet>
18+
<NoAxisChart />
19+
</Snippet>
20+
</CodeSnippet>
1521
</ChildContent>
1622

1723

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<DemoContainer>
2+
<ApexChart TItem="Order"
3+
Title="Order Gross Value" OnLegendClicked="LegendClicked">
4+
5+
<ApexPointSeries TItem="Order"
6+
Items="Orders"
7+
Name="Gross Value"
8+
SeriesType="SeriesType.Pie"
9+
XValue="@(e => e.Country)"
10+
YAggregate="@(e => e.Sum(e => e.GrossValue))"
11+
OrderByDescending="e=>e.Y"
12+
/>
13+
</ApexChart>
14+
15+
@if(currentLegend != null)
16+
{
17+
<Alert BackgroundColor="TablerColor.Primary">
18+
<h3>You clicked @currentLegend.DataPoint.X</h3>
19+
20+
</Alert>
21+
}
22+
23+
</DemoContainer>
24+
25+
@code {
26+
private List<Order> Orders { get; set; } = SampleData.GetOrders();
27+
28+
29+
private LegendClicked<Order> currentLegend = null;
30+
protected override void OnInitialized()
31+
{
32+
33+
}
34+
35+
private void LegendClicked(LegendClicked<Order> data)
36+
{
37+
currentLegend = data;
38+
}
39+
}

src/Blazor-ApexCharts/Internal/JSHandler.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,23 @@ public void JSSelected(JSSelection jsSelection)
146146
[JSInvokable]
147147
public void JSLegendClicked(JSLegendClicked jsLegendClicked)
148148
{
149-
var series = ChartReference.Options.Series.ElementAt(jsLegendClicked.SeriesIndex);
149+
Series<TItem> series = null;
150+
IDataPoint<TItem> point = null;
151+
if (ChartReference.IsNoAxisChart)
152+
{
153+
series = ChartReference.Options.Series.First();
154+
point = series.Data.ElementAt(jsLegendClicked.SeriesIndex);
155+
}
156+
else
157+
{
158+
series = ChartReference.Options.Series.ElementAt(jsLegendClicked.SeriesIndex);
159+
}
160+
150161
var legendClicked = new LegendClicked<TItem>
151162
{
152163
Series = series,
153-
Collapsed = jsLegendClicked.Collapsed
164+
Collapsed = jsLegendClicked.Collapsed,
165+
DataPoint = point,
154166
};
155167

156168
//Invert if Toggle series is set to flase (default == true)

src/Blazor-ApexCharts/Series/LegendClicked.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ public class LegendClicked<TItem> where TItem : class
1414
/// <summary>
1515
/// Specifies whether the series associated with the legend item is collapsed
1616
/// </summary>
17-
public bool Collapsed { get; set; }
17+
public bool Collapsed { get; set; }
18+
19+
/// <summary>
20+
/// The clicked datapoint, Only valid for no axis charts
21+
/// </summary>
22+
public IDataPoint<TItem> DataPoint { get; set; }
23+
1824
}
1925
}

0 commit comments

Comments
 (0)