5858 protected override async Task OnInitializedAsync () {
5959 GridData = await ForecastService .GetForecastAsync ();
6060 }
61- void Grid_CustomizeContextMenu (GridCustomizeContextMenuEventArgs args ) {
62- if (args .Context is GridDataRowCommandContext rowContext ) {
63- if (rowContext .Grid .IsEditing ()) {
64- var saveEdit = args .Items .AddCustomItem (" Save" , async () => {
65- rowContext .Grid .BeginUpdate ();
66- await rowContext .Grid .SaveChangesAsync ();
67- rowContext .Grid .EndUpdate ();
68- });
69- saveEdit .IconCssClass = " grid-context-menu-item-edit-row" ;
70-
71- var cancelEdit = args .Items .AddCustomItem (" Cancel" , async () => {
72- rowContext .Grid .BeginUpdate ();
73- await rowContext .Grid .CancelEditAsync ();
74- rowContext .Grid .EndUpdate ();
75- });
76- cancelEdit .IconCssClass = " grid-context-menu-item-delete-row" ;
77- }
78- var newRow = args .Items .AddCustomItem (" New" , async () => {
79- rowContext .Grid .BeginUpdate ();
80- await rowContext .Grid .StartEditNewRowAsync ();
81- rowContext .Grid .EndUpdate ();
82- });
83- newRow .IconCssClass = " grid-context-menu-item-new-row" ;
84- newRow .BeginGroup = true ;
85-
86- var editRow = args .Items .AddCustomItem (" Edit" , async () => {
87- rowContext .Grid .BeginUpdate ();
88- await rowContext .Grid .StartEditRowAsync (rowContext .RowVisibleIndex );
89- rowContext .Grid .EndUpdate ();
90- });
91- editRow .IconCssClass = " grid-context-menu-item-edit-row" ;
92-
93- var deleteRow = args .Items .AddCustomItem (" Delete" , () => {
94- rowContext .Grid .BeginUpdate ();
95- rowContext .Grid .ShowRowDeleteConfirmation (rowContext .RowVisibleIndex );
96- rowContext .Grid .EndUpdate ();
97- });
98- deleteRow .IconCssClass = " grid-context-menu-item-delete-row" ;
99- }
100-
101- if (args .Context is GridHeaderCommandContext headerContext ) {
102- var isFilterRowVisible = headerContext .Grid .ShowFilterRow != false ;
103- var newFilterRowState = isFilterRowVisible ? false : true ;
104- var filterRow = args .Items .AddCustomItem (" Filter Row" , () => {
105- headerContext .Grid .BeginUpdate ();
106- headerContext .Grid .ShowFilterRow = newFilterRowState ;
107- headerContext .Grid .EndUpdate ();
108- });
109- filterRow .IconCssClass = " grid-context-menu-item-filter-row" ;
110- filterRow .CssClass = isFilterRowVisible ? " menu-item-selected" : " " ;
111-
112- var isFiltered = headerContext .Grid .GetFilterCriteria () != null ;
113- var clearFilter = args .Items .AddCustomItem (" Clear Filter" , () => {
114- headerContext .Grid .BeginUpdate ();
115- headerContext .Grid .ClearFilter ();
116- headerContext .Grid .EndUpdate ();
117- });
118- clearFilter .IconCssClass = " grid-context-menu-item-clear-filter" ;
119- clearFilter .Enabled = isFiltered ? true : false ;
120-
121- var isFooterVisible = headerContext .Grid .FooterDisplayMode == GridFooterDisplayMode .Always
122- || headerContext .Grid .FooterDisplayMode == GridFooterDisplayMode .Auto && headerContext .Grid .GetTotalSummaryItems ().Count > 0 ;
123- var newFooterState = isFooterVisible ? GridFooterDisplayMode .Never : GridFooterDisplayMode .Always ;
124- var footer = args .Items .AddCustomItem (" Footer" , () =>
125- {
126- headerContext .Grid .BeginUpdate ();
127- headerContext .Grid .FooterDisplayMode = newFooterState ;
128- headerContext .Grid .EndUpdate ();
129- });
130- footer .IconCssClass = " grid-context-menu-item-footer" ;
131- footer .CssClass = isFooterVisible ? " menu-item-selected" : " " ;
132-
133- var fixLeft = args .Items .AddCustomItem (" Fix Column to the Left" , () => {
134- headerContext .Grid .BeginUpdate ();
135- headerContext .Column .FixedPosition = GridColumnFixedPosition .Left ;
136- headerContext .Grid .EndUpdate ();
137- });
138- fixLeft .IconCssClass = " grid-context-menu-item-fix-column-left" ;
139- fixLeft .BeginGroup = true ;
140-
141- var fixRight = args .Items .AddCustomItem (" Fix Column to the Right" , () => {
142- headerContext .Grid .BeginUpdate ();
143- headerContext .Column .FixedPosition = GridColumnFixedPosition .Right ;
144- headerContext .Grid .EndUpdate ();
145- });
146- fixRight .IconCssClass = " grid-context-menu-item-fix-column-right" ;
147-
148- var unfix = args .Items .AddCustomItem (" Unfix Column" , () => {
149- headerContext .Grid .BeginUpdate ();
150- headerContext .Column .FixedPosition = GridColumnFixedPosition .None ;
151- headerContext .Grid .EndUpdate ();
152- });
153- unfix .IconCssClass = " grid-context-menu-item-unfix-column" ;
154- }
155-
156- if (args .Context is GridFooterCommandContext footerContext ) {
157- var isFooterVisible = footerContext .Grid .FooterDisplayMode == GridFooterDisplayMode .Always
158- || footerContext .Grid .FooterDisplayMode == GridFooterDisplayMode .Auto && footerContext .Grid .GetTotalSummaryItems ().Count > 0 ;
159- var newFooterState = isFooterVisible ? GridFooterDisplayMode .Never : GridFooterDisplayMode .Always ;
160- var footer = args .Items .AddCustomItem (" Footer" , () =>
161- {
162- footerContext .Grid .BeginUpdate ();
163- footerContext .Grid .FooterDisplayMode = newFooterState ;
164- footerContext .Grid .EndUpdate ();
165- });
166- footer .IconCssClass = " grid-context-menu-item-footer" ;
167- footer .CssClass = isFooterVisible ? " menu-item-selected" : " " ;
168- }
169- }
17061
62+ void Grid_CustomizeContextMenu (GridCustomizeContextMenuEventArgs args ) => GridContextMenuHelper .CustomizeContextMenu (args );
17163
17264 void Grid_CustomizeElement (GridCustomizeElementEventArgs e ) {
17365 if (GridContextMenuHelper .IsContextMenuElement (e .ElementType )) {
18880 }
18981 }
19082
191- async Task NewItem_Click () {
192- await Grid .StartEditNewRowAsync ();
193- }
194- void ColumnChooserItem_Click (ToolbarItemClickEventArgs e ) {
195- Grid .ShowColumnChooser ();
196- }
197- async Task ExportXlsxItem_Click () {
198- await Grid .ExportToXlsxAsync (ExportFileName );
199- }
200- async Task ExportXlsItem_Click () {
201- await Grid .ExportToXlsAsync (ExportFileName );
202- }
203- async Task ExportCsvItem_Click () {
204- await Grid .ExportToCsvAsync (ExportFileName );
205- }
206- async Task ExportPdfItem_Click () {
207- await Grid .ExportToPdfAsync (ExportFileName );
208- }
83+ async Task NewItem_Click () => await Grid .StartEditNewRowAsync ();
84+ void ColumnChooserItem_Click (ToolbarItemClickEventArgs e ) => Grid .ShowColumnChooser ();
85+ async Task ExportXlsxItem_Click () => await Grid .ExportToXlsxAsync (ExportFileName );
86+ async Task ExportXlsItem_Click () => await Grid .ExportToXlsAsync (ExportFileName );
87+ async Task ExportCsvItem_Click () => await Grid .ExportToCsvAsync (ExportFileName );
88+ async Task ExportPdfItem_Click () => await Grid .ExportToPdfAsync (ExportFileName );
20989}
0 commit comments