|
1 | | -@namespace BootstrapBlazor.Components |
| 1 | +@namespace BootstrapBlazor.Components |
2 | 2 | @using Microsoft.AspNetCore.Components.Web.Virtualization |
3 | 3 | @typeparam TItem |
4 | 4 | @inherits BootstrapModuleComponentBase |
|
14 | 14 | { |
15 | 15 | <SkeletonTable ShowToolbar="@ShowToolbar"></SkeletonTable> |
16 | 16 | } |
17 | | - else if(ShowLoadingInFirstRender) |
| 17 | + else if (ShowLoadingInFirstRender) |
18 | 18 | { |
19 | 19 | <div class="table-loading"> |
20 | 20 | @if (LoadingTemplate is not null) |
|
117 | 117 | <span class="d-none d-sm-inline-block">@ColumnButtonText</span> |
118 | 118 | <span class="caret"></span> |
119 | 119 | </button> |
120 | | - <div class="dropdown-menu dropdown-menu-end shadow"> |
121 | | - @foreach (var item in _visibleColumns) |
| 120 | + <div class="@DropdownListClassString"> |
| 121 | + @if (ShowColumnListControls) |
122 | 122 | { |
123 | | - <div class="dropdown-item"> |
124 | | - <Checkbox ShowAfterLabel="true" DisplayText="@item.DisplayName" |
125 | | - IsDisabled="@GetColumnsListState(item)" |
126 | | - @bind-Value="@item.Visible" |
127 | | - OnValueChanged="visible => OnToggleColumnVisible(item.Name, visible)"> |
128 | | - </Checkbox> |
| 123 | + <div class="column-list-controls"> |
| 124 | + <Button Text="@Localizer["ColumnListSelectAllText"]" Size="Size.ExtraSmall" |
| 125 | + OnClick="TriggerSelectAllColumnList"></Button> |
| 126 | + <Button Text="@Localizer["ColumnListSelectInvertText"]" Size="Size.ExtraSmall" |
| 127 | + OnClick="TriggerSelectInvertColumnList" class="ms-2"></Button> |
129 | 128 | </div> |
| 129 | + <Divider /> |
| 130 | + <div class="column-list-items"> |
| 131 | + @foreach (var item in _visibleColumns) |
| 132 | + { |
| 133 | + @RenderColumnListItem(item) |
| 134 | + } |
| 135 | + </div> |
| 136 | + } |
| 137 | + else |
| 138 | + { |
| 139 | + @foreach (var item in _visibleColumns) |
| 140 | + { |
| 141 | + @RenderColumnListItem(item) |
| 142 | + } |
130 | 143 | } |
131 | 144 | </div> |
132 | 145 | </div> |
|
253 | 266 | { |
254 | 267 | foreach (var item in Rows) |
255 | 268 | { |
256 | | - OnBeforeRenderRow?.Invoke(item); |
| 269 | + OnBeforeRenderRow?.Invoke(item); |
257 | 270 | if (RowTemplate != null) |
258 | 271 | { |
259 | 272 | var columns = GetVisibleColumns(); |
|
1131 | 1144 | GotoNavigatorLabelText="@GotoNavigatorLabelText" |
1132 | 1145 | ShowPageInfo="ShowPageInfo" PageInfoTemplate="InternalPageInfoTemplate"/>; |
1133 | 1146 |
|
| 1147 | + RenderFragment<ColumnVisibleItem> RenderColumnListItem => item => |
| 1148 | + @<div class="dropdown-item"> |
| 1149 | + <Checkbox ShowAfterLabel="true" DisplayText="@item.DisplayName" |
| 1150 | + IsDisabled="@GetColumnsListState(item)" |
| 1151 | + @bind-Value="@item.Visible" |
| 1152 | + OnValueChanged="visible => OnToggleColumnVisible(item.Name, visible)"> |
| 1153 | + </Checkbox> |
| 1154 | + </div>; |
1134 | 1155 | } |
0 commit comments