-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathGridContextMenuContainer.razor
More file actions
58 lines (49 loc) · 2.62 KB
/
Copy pathGridContextMenuContainer.razor
File metadata and controls
58 lines (49 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
@using GridWithContextMenu.Data
@using System.Collections
<DxContextMenu @ref="CustomContextMenu"
Data="CustomContextMenuData"
ItemClick="CustomContextMenu_ItemClick">
<DataMappings>
<DxContextMenuDataMapping Text="@nameof(ContextMenuItem.Text)"
Visible="@nameof(ContextMenuItem.Visible)"
Enabled="@nameof(ContextMenuItem.Enabled)"
BeginGroup="@nameof(ContextMenuItem.BeginGroup)"
CssClass="@nameof(ContextMenuItem.CssClass)"
IconCssClass="@nameof(ContextMenuItem.IconCssClass)" />
</DataMappings>
</DxContextMenu>
<DxContextMenu @ref="RowContextMenu"
Data="RowContextMenuData"
ItemClick="RowContextMenu_ItemClick">
<DataMappings>
<DxContextMenuDataMapping Text="@nameof(ContextMenuItem.Text)"
Visible="@nameof(ContextMenuItem.Visible)"
Enabled="@nameof(ContextMenuItem.Enabled)"
BeginGroup="@nameof(ContextMenuItem.BeginGroup)"
CssClass="@nameof(ContextMenuItem.CssClass)"
IconCssClass="@nameof(ContextMenuItem.IconCssClass)" />
</DataMappings>
</DxContextMenu>
@code {
DxContextMenu CustomContextMenu { get; set; }
DxContextMenu RowContextMenu { get; set; }
IEnumerable CustomContextMenuData { get; set; }
IEnumerable RowContextMenuData { get; set; }
int ContextMenuRowIndex { get; set; }
[Parameter] public IGrid Grid { get; set; }
async Task CustomContextMenu_ItemClick(ContextMenuItemClickEventArgs e)
=> await GridContextMenuHelper.ProcessCustomMenuItemClick((ContextMenuItem)e.ItemInfo.DataItem, Grid);
async Task RowContextMenu_ItemClick(ContextMenuItemClickEventArgs e)
=> await GridContextMenuHelper.ProcessRowMenuItemClickAsync((ContextMenuItem)e.ItemInfo.DataItem, ContextMenuRowIndex, Grid);
public async Task Grid_ContextMenu(GridCustomizeElementEventArgs e, MouseEventArgs mouseArgs) {
if(GridContextMenuHelper.IsCustomContextMenuElement(e.ElementType)) {
CustomContextMenuData = GridContextMenuHelper.GetCustomItems(e);
await CustomContextMenu.ShowAsync(mouseArgs);
}
if(GridContextMenuHelper.IsRowContextMenuElement(e.ElementType)) {
ContextMenuRowIndex = e.VisibleIndex;
RowContextMenuData = GridContextMenuHelper.GetRowItems(e);
await RowContextMenu.ShowAsync(mouseArgs);
}
}
}