коврик на заказ - PullRequest
       6

коврик на заказ

1 голос
/ 13 января 2020

Я использую мат-стол из angular материала со складными рядами. Каждая строка родительской таблицы подразумевается как заголовок и может быть развернута для отображения вложенной таблицы внутри этой родительской таблицы в качестве содержимого расширенной строки.

Я хочу использовать нумерацию страниц с этой родительской таблицей с элементами дочерних таблиц. Ie, каждая строка родительской таблицы является только заголовком дочерней таблицы, которая содержится внутри расширяемой строки. Если в строке 1 родительской таблицы размещены 3 элемента в дочерней таблице, то я хочу, чтобы нумерация страниц работала с 3 элементами.

Ie в нем должно отображаться 1-3 из x. Если размер страницы равен 5, а две строки содержат по 3 элемента в каждой, вторая строка должна предпочтительно перейти на следующую страницу.

<div fxLayout="column">
    <div fxLayout="row" class="pg-top">
        <h1 class="page-heading">{{'REQUISITES' | translate}}</h1>
        <div>
            <button mat-button class="add-btn" [routerLink]="['./add']"> {{'ADD' | translate}}
            </button>
            <mat-menu #menu="matMenu" class="page-dropdown-menu">
                <button mat-menu-item>{{'IMPORT REQUISITES' | translate}}</button>
                <button mat-menu-item [routerLink]="['./add']">{{'ADD REQUISITES' | translate}}</button>
            </mat-menu>

            <button [matMenuTriggerFor]="menu" mat-button class="action-button">
                {{'ACTIONS' | translate}}
                <mat-icon>keyboard_arrow_down</mat-icon>
            </button>
        </div>
    </div>

    <div fxLayout="column">
        <div fxLayout="row" fxLayoutAlign="space-between" class="search-sorting-menu">
            <div class="form-filter elsicon-search icon-btn">
                <input matInput (keyup)="applyFilter($event.target.value)" placeholder="{{'SEARCH' | translate}}">
            </div>
            <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="10px">
                <button class="elsicon-print icon-btn"></button>
                <button class="elsicon-v-menu icon-btn"></button>
                <button class="elsicon-h-menu icon-btn"></button>
            </div>
        </div>

        <div *ngIf="selection.hasValue()" class="check-select-list-bar" fxLayout="row" fxLayoutAlign="space-between">
            <div class="details">
                <span class="select-count"
                    *ngIf="selection.selected.length!=dataSource.data.length">{{selection.selected.length}}
                    Selected</span>
                <span class="select-count" *ngIf="selection.selected.length==dataSource.data.length">All
                    Courses ({{selection.selected.length}})
                    selected</span>
                <span class="select-all-btn" *ngIf="selection.selected.length!=dataSource.data.length"
                    (click)="selectAll()">(Select all)</span>
                <span class="select-delete-btn" (click)="removeSelectedRows()">Delete</span>
            </div>
            <span class="close-btn"></span>
        </div>
    </div>

    <div class="table-container" #scrollMe>
        <table mat-table [dataSource]="dataSource" matSort matSortActive="name" matSortStart="asc" matSortDisableClear
            class="list-table list-table hand_cursor" multiTemplateDataRows>

            <!--checkbox-->

            <ng-container matColumnDef="source">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'SOURCE' |translate}} </th>
                <td mat-cell *matCellDef="let element" class="grey"> {{element.name}} </td>
            </ng-container>
            <!-- Name Column -->
            <ng-container matColumnDef="name">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'NAME' |translate}} </th>
                <td mat-cell *matCellDef="let element"> </td>
            </ng-container>
            <ng-container matColumnDef="type">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'TYPE' |translate}} </th>
                <td mat-cell *matCellDef="let element"> </td>
            </ng-container>
            <ng-container matColumnDef="must_complete">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'MUST COMPLETE' |translate}} </th>
                <td mat-cell *matCellDef="let element"> </td>
            </ng-container>
            <ng-container matColumnDef="repeat_interval">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'REPEATS' |translate}} </th>
                <td mat-cell *matCellDef="let element"> </td>
            </ng-container>
            <ng-container matColumnDef="actions">
                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'ACTIONS' |translate}} </th>
                <td mat-cell *matCellDef="let element"><i class="material-icons">keyboard_arrow_down</i>
                </td>
            </ng-container>

            <ng-container matColumnDef="expandedDetail">
                <td mat-cell *matCellDef="let element" [attr.colspan]="displayedColumns.length">
                    <div class="example-element-detail" [@detailExpand]="element.isExpanded ? 'expanded' :
                        'collapsed'">
                        <table mat-table [dataSource]="element.dataSource" matSort matSortActive="name"
                            matSortStart="asc" matSortDisableClear class="list-table list-table hand_cursor item-table"
                            multiTemplateDataRows>

                            <!--checkbox-->
                            <ng-container matColumnDef="source">
                                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'SOURCE' |translate}} </th>
                                <td mat-cell *matCellDef="let element"> {{element.enrollable_name}} </td>
                            </ng-container>
                            <!-- Name Column -->
                            <ng-container matColumnDef="name">
                                <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'NAME' |translate}} </th>
                                <td mat-cell *matCellDef="let element"> {{element.enrollable_name}} </td>
                            </ng-container>

                            <!-- Identifier Column -->
                            <ng-container matColumnDef="type">
                                <th mat-header-cell *matHeaderCellDef> {{'TYPE' | translate}} </th>
                                <td mat-cell *matCellDef="let element"> {{element.enrollable_name}} </td>
                            </ng-container>

                            <!-- Description Column -->
                            <ng-container matColumnDef="must_complete">
                                <th mat-header-cell *matHeaderCellDef> {{'MUST COMPLETE' |translate}} </th>
                                <td mat-cell *matCellDef="let element"> {{element.enrollable_name}} </td>
                            </ng-container>
                            <ng-container matColumnDef="repeat_interval">
                                <th mat-header-cell *matHeaderCellDef> {{'REPEATS' |translate}} </th>
                                <td mat-cell *matCellDef="let element"> {{element.repeat_interval}}
                                </td>
                            </ng-container>

                            <ng-container matColumnDef="actions" class="actions">
                                <th mat-header-cell *matHeaderCellDef>

                                    <a [matMenuTriggerFor]="menu" mat-icon-button class="checkboxactions"
                                        appClickStopPropagation *ngIf="itemsSelected" matTooltip="Actions">
                                        <i class="material-icons"> more_vert </i>
                                    </a>
                                    <mat-menu #menu="matMenu" class="page-dropdown-menu">
                                        <button mat-menu-item (click)="removeSelectedRows()">
                                            <mat-icon>delete</mat-icon> <span>Delete</span>
                                        </button>
                                        <button mat-menu-item>
                                            <mat-icon>move_to_inbox</mat-icon> <span>Move to</span>
                                        </button>
                                        <button mat-menu-item>
                                            <mat-icon>report</mat-icon> <span>Report spam</span>
                                        </button>
                                    </mat-menu>
                                </th>
                                <td mat-cell *matCellDef="let element">

                                    <a class="menus" mat-icon-button aria-label="Details"
                                        matTooltip="{{'DETAILS'|translate}}"><i
                                            class="material-icons">format_list_bulleted</i></a>
                                    <a class="edit" mat-icon-button aria-label="Edit"><i class="material-icons"
                                            matTooltip="{{'EDIT'|translate}}">edit</i></a>

                                    <a [matMenuTriggerFor]="menu" mat-icon-button aria-label="menu"
                                        appClickStopPropagation matTooltip="{{'ACTIONS'|translate}}">
                                        <i class="material-icons"> more_vert </i>
                                    </a>
                                    <mat-menu #menu="matMenu" class="page-dropdown-menu">
                                        <button mat-menu-item>{{'REQUISITIES'|translate}}</button>
                                        <button mat-menu-item>{{'PERMISSIONS'|translate}}</button>
                                        <button mat-menu-item
                                            (click)="onDelete(element)">{{'DELETE'|translate}}</button>
                                    </mat-menu>
                                </td>
                            </ng-container>
                            <tr mat-header-row *matHeaderRowDef="displayedColumns;sticky:true"></tr>
                            <tr mat-row *matRowDef="let element; columns: displayedColumns;"> </tr>
                        </table>
                    </div>
                </td>
            </ng-container>

            <tr mat-header-row *matHeaderRowDef="displayedColumns;sticky:true"></tr>
            <tr mat-row *matRowDef="let element; columns: displayedColumns;"
                [class.example-expanded-row]="element.isExpanded" class="example-element-row"
                (click)="element.isExpanded?element.isExpanded= false:element.isExpanded= true"> </tr>
            <tr mat-row *matRowDef="let row; columns: ['expandedDetail']" class="example-detail-row"></tr>

        </table>
        <div *ngIf="noData | async" class="no-records">
            <i class="elsicon-no-found"></i>
            <span class="no-found-text">{{'NO RECORDS FOUND' |translate}}</span>
        </div>
        <mat-paginator
            [pageSizeOptions]="configurationService.pageSizeOptions"
            showFirstLastButtons
            class="mat-paginator table-paginaton">
        </mat-paginator>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...