66<DxGrid @ref =" Grid"
77 Data =" GridData"
88 EditMode =" GridEditMode.EditRow"
9+ @bind-SearchText =" GridSearchText"
910 CssClass =" mw-1100"
1011 CustomizeElement =" Grid_CustomizeElement"
11- @oncontextmenu:preventDefault
1212 EditModelSaving =" Grid_EditModelSaving"
13- DataItemDeleting =" Grid_DataItemDeleting" >
13+ DataItemDeleting =" Grid_DataItemDeleting"
14+ ContextMenus =" GridContextMenus.All"
15+ CustomizeContextMenu =" Grid_CustomizeContextMenu"
16+ @oncontextmenu:preventDefault >
17+ <ToolbarTemplate >
18+ <DxToolbar ItemRenderStyleMode =" ToolbarRenderStyleMode.Plain" >
19+ <DxToolbarItem Text =" New" Click =" NewItem_Click" />
20+ <DxToolbarItem Text =" Column Chooser" BeginGroup =" true" Click =" ColumnChooserItem_Click" />
21+ <DxToolbarItem Text =" Export" >
22+ <Items >
23+ <DxToolbarItem Text =" To CSV" Click =" ExportCsvItem_Click" />
24+ <DxToolbarItem Text =" To XLSX" Click =" ExportXlsxItem_Click" />
25+ <DxToolbarItem Text =" To XLS" Click =" ExportXlsItem_Click" />
26+ <DxToolbarItem Text =" To PDF" Click =" ExportPdfItem_Click" />
27+ </Items >
28+ </DxToolbarItem >
29+ <DxToolbarItem BeginGroup =" true" >
30+ <Template Context =" toolbar_item_context" >
31+ <DxSearchBox @bind-Text =" GridSearchText"
32+ BindValueMode =" BindValueMode.OnInput"
33+ ClearButtonDisplayMode =" DataEditorClearButtonDisplayMode.Auto"
34+ aria-label =" Search" />
35+ </Template >
36+ </DxToolbarItem >
37+ </DxToolbar >
38+ </ToolbarTemplate >
1439 <Columns >
15- <DxGridDataColumn FieldName =" Date" SortIndex = " 0 " />
40+ <DxGridDataColumn FieldName =" Date" />
1641 <DxGridDataColumn FieldName =" TemperatureC" />
1742 <DxGridDataColumn FieldName =" TemperatureF" />
18- <DxGridDataColumn FieldName =" Summary" />
43+ <DxGridDataColumn FieldName =" Summary" GroupIndex = " 0 " />
1944 </Columns >
2045 <TotalSummary >
2146 <DxGridSummaryItem SummaryType =" GridSummaryItemType.Avg" FieldName =" TemperatureC" />
2853 IGrid Grid { get ; set ; }
2954 GridContextMenuContainer ContextMenuContainer { get ; set ; }
3055 object GridData { get ; set ; }
56+ string GridSearchText = " " ;
57+ const string ExportFileName = " ExportResult" ;
3158
3259 protected override async Task OnInitializedAsync () {
3360 GridData = await ForecastService .GetForecastAsync ();
3461 }
3562
63+ void Grid_CustomizeContextMenu (GridCustomizeContextMenuEventArgs args ) => GridContextMenuHelper .CustomizeContextMenu (args );
64+
3665 void Grid_CustomizeElement (GridCustomizeElementEventArgs e ) {
3766 if (GridContextMenuHelper .IsContextMenuElement (e .ElementType )) {
3867 e .Attributes [" oncontextmenu" ] = EventCallback .Factory .Create <MouseEventArgs >(
5180 await ForecastService .Remove (item );
5281 }
5382 }
83+
84+ async Task NewItem_Click () => await Grid .StartEditNewRowAsync ();
85+ void ColumnChooserItem_Click (ToolbarItemClickEventArgs e ) => Grid .ShowColumnChooser ();
86+ async Task ExportXlsxItem_Click () => await Grid .ExportToXlsxAsync (ExportFileName );
87+ async Task ExportXlsItem_Click () => await Grid .ExportToXlsAsync (ExportFileName );
88+ async Task ExportCsvItem_Click () => await Grid .ExportToCsvAsync (ExportFileName );
89+ async Task ExportPdfItem_Click () => await Grid .ExportToPdfAsync (ExportFileName );
5490}
0 commit comments