Skip to content

Commit d35d60e

Browse files
authored
Fix export column widths in new Financial sample app (#333)
1 parent 5caedc3 commit d35d60e

File tree

4 files changed

+57
-62
lines changed

4 files changed

+57
-62
lines changed

sample-applications/blazor-financial-dashboard/BlazorFinancialDashboard/Components/Pages/Analytics.razor

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
<GridColumn Field="@nameof(Transaction.PaymentMethodId)"
108108
HeaderClass="centered-header"
109109
TextAlign="@ColumnTextAlign.Center"
110+
Title="Payment Method"
110111
Visible="@IsLargeScreen">
111112
<Template>
112113
@{ var dataItem = (Transaction)context; }
@@ -151,34 +152,12 @@
151152
}
152153
private void OnGridBeforeExcelExport(GridBeforeExcelExportEventArgs args)
153154
{
154-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
155-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
156-
if (IsLargeScreen)
157-
{
158-
args.Columns.First(x => x.Field == nameof(Transaction.Category)).Width = "120px";
159-
args.Columns.First(x => x.Field == nameof(Transaction.PaymentMethodId)).Width = "100px";
160-
}
161-
if (IsMediumOrLargeScreen)
162-
{
163-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
164-
}
165-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
155+
CommonUtils.SetExportableColumnWidths(args.Columns);
166156
}
167157

168158
private void OnGridBeforePdfExport(GridBeforePdfExportEventArgs args)
169159
{
170-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
171-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
172-
if (IsLargeScreen)
173-
{
174-
args.Columns.First(x => x.Field == nameof(Transaction.Category)).Width = "120px";
175-
args.Columns.First(x => x.Field == nameof(Transaction.PaymentMethodId)).Width = "100px";
176-
}
177-
if (IsMediumOrLargeScreen)
178-
{
179-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
180-
}
181-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
160+
CommonUtils.SetExportableColumnWidths(args.Columns);
182161
}
183162

184163
[JSInvokable("OnViewPortResize")]

sample-applications/blazor-financial-dashboard/BlazorFinancialDashboard/Components/Pages/Overview.razor

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<GridColumn Field="@nameof(Transaction.PaymentMethodId)"
143143
HeaderClass="centered-header"
144144
TextAlign="@ColumnTextAlign.Center"
145+
Title="Payment Method"
145146
Visible="@IsLargeScreen">
146147
<Template>
147148
@{ var dataItem = (Transaction)context; }
@@ -196,34 +197,12 @@
196197

197198
private void OnGridBeforeExcelExport(GridBeforeExcelExportEventArgs args)
198199
{
199-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
200-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
201-
if (IsLargeScreen)
202-
{
203-
args.Columns.First(x => x.Field == nameof(Transaction.Category)).Width = "120px";
204-
args.Columns.First(x => x.Field == nameof(Transaction.PaymentMethodId)).Width = "100px";
205-
}
206-
if (IsMediumOrLargeScreen)
207-
{
208-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
209-
}
210-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
200+
CommonUtils.SetExportableColumnWidths(args.Columns);
211201
}
212202

213203
private void OnGridBeforePdfExport(GridBeforePdfExportEventArgs args)
214204
{
215-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
216-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
217-
if (IsLargeScreen)
218-
{
219-
args.Columns.First(x => x.Field == nameof(Transaction.Category)).Width = "120px";
220-
args.Columns.First(x => x.Field == nameof(Transaction.PaymentMethodId)).Width = "100px";
221-
}
222-
if (IsMediumOrLargeScreen)
223-
{
224-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
225-
}
226-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
205+
CommonUtils.SetExportableColumnWidths(args.Columns);
227206
}
228207

229208
private double GetSavingsPercent(decimal value)

sample-applications/blazor-financial-dashboard/BlazorFinancialDashboard/Components/Pages/Transactions.razor

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -204,24 +204,12 @@
204204
}
205205
private void OnGridBeforeExcelExport(GridBeforeExcelExportEventArgs args)
206206
{
207-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
208-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
209-
if (IsMediumOrLargeScreen)
210-
{
211-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
212-
}
213-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
207+
CommonUtils.SetExportableColumnWidths(args.Columns);
214208
}
215209

216210
private void OnGridBeforePdfExport(GridBeforePdfExportEventArgs args)
217211
{
218-
args.Columns.First(x => x.Field == nameof(Transaction.Date)).Width = "180px";
219-
args.Columns.First(x => x.Field == nameof(Transaction.Amount)).Width = "100px";
220-
if (IsMediumOrLargeScreen)
221-
{
222-
args.Columns.First(x => x.Field == nameof(Transaction.Merchant)).Width = "140px";
223-
}
224-
args.Columns.First(x => x.Field == nameof(Transaction.Status)).Width = "100px";
212+
CommonUtils.SetExportableColumnWidths(args.Columns);
225213
}
226214

227215
protected override async Task OnInitializedAsync()
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using BlazorFinancialDashboard.Data;
2+
using Telerik.Blazor.Components.Grid;
3+
4+
namespace BlazorFinancialDashboard.Services;
5+
6+
public static class CommonUtils
7+
{
8+
private static readonly Dictionary<string, string> ExportableColumnWiths = new()
9+
{
10+
{ nameof(Transaction.Amount), "100px" },
11+
{ nameof(Transaction.Category), "120px" },
12+
{ nameof(Transaction.Date), "180px" },
13+
{ nameof(Transaction.Merchant), "140px" },
14+
{ nameof(Transaction.PaymentMethodId), "100px" },
15+
{ nameof(Transaction.Status), "100px" }
16+
};
17+
18+
private static readonly string DefaultExportableColumnWidth = "120px";
19+
20+
public static void SetExportableColumnWidths(List<GridExcelExportColumn> currentColumns)
21+
{
22+
foreach (GridExcelExportColumn column in currentColumns)
23+
{
24+
if (ExportableColumnWiths.TryGetValue(column.Field, out string? value))
25+
{
26+
column.Width = value;
27+
}
28+
else
29+
{
30+
column.Width = DefaultExportableColumnWidth;
31+
}
32+
}
33+
}
34+
35+
public static void SetExportableColumnWidths(List<GridPdfExportColumn> currentColumns)
36+
{
37+
foreach (GridPdfExportColumn column in currentColumns)
38+
{
39+
if (ExportableColumnWiths.TryGetValue(column.Field, out string? value))
40+
{
41+
column.Width = value;
42+
}
43+
else
44+
{
45+
column.Width = DefaultExportableColumnWidth;
46+
}
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)