Angular Material md-cell 中的 2 个内联按钮如何

Angular Material 2 Inline buttons inside md-cell how to

有人可以举例说明 Angular Material 2 DataTable 在单元格内带有内嵌按钮吗??我无法让它工作...按钮总是一个接一个地出现。

我的代码如下但不起作用:

    <div class="example-container mat-elevation-z8">

  <!--Filtering input fiels-->
  <div class="example-header">
    <md-input-container floatPlaceholder="never">
      <input mdInput #filter placeholder="Αναζήτηση">
    </md-input-container>
  </div>


  <md-table #table [dataSource]="incidentsDataSource" mdSort>

    <ng-container cdkColumnDef="protocolNo">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Αρ. Πρωτοκόλλου</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.protocolNo}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="date">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Ημερομηνία</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.date | date:'dd/MM/yyyy' }}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="patient">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Ασθενής</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.patient.lastName}} {{row.patient.firstName}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="doctor">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Ιατρός</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.doctor.lastName}} {{row.doctor.firstName}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="signingDoctor">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Υπογράφων Ιατρός</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.signingDoctor.lastName}} {{row.signingDoctor.firstName}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="clinic">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Κλινική</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.clinic?.name}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="isPayed">
      <md-header-cell *cdkHeaderCellDef md-sort-header> Πληρωμή</md-header-cell>
      <md-cell *cdkCellDef="let row"> {{row.isPayed | payment}}</md-cell>
    </ng-container>

    <ng-container cdkColumnDef="actions">
      <md-header-cell *cdkHeaderCellDef> Ενέργειες</md-header-cell>

这是单元格数据

尝试在此处显示单元格中的内联按钮但不起作用

        <div style="display: inline-block;">

          <button md-button (click)="showAndPrint(row)" >
            <md-icon class="md-18">visibility</md-icon> εκτ
          </button>

          <button md-button (click)="editItem(row)"  style="display: inline-block;">
            <md-icon class="md-18">mode_edit</md-icon> επεξ
          </button>

          <button md-button (click)="deleteItem(row)"  style="display: inline-block;">
            <md-icon class="md-18">delete</md-icon> διαγ
          </button>

        </div>

      </md-cell>
    </ng-container>

    <md-header-row *cdkHeaderRowDef="displayedColumns"></md-header-row>
    <md-row *cdkRowDef="let row; columns: displayedColumns;"></md-row>
  </md-table>


  <md-paginator #paginator
                [length]="incidentsDataSource.size"
                [pageIndex]="0"
                [pageSize]="10"
                [pageSizeOptions]="[10, 25, 50, 100]">
  </md-paginator>

</div>

提前致谢

设置操作列的宽度应该可以解决您的问题。

将以下内容添加到您的组件 .scss 文件中:

.mat-column-actions {
    flex: 0 0 300px;
}

将 300px 值更改为适合您需要的值!

以下代码可以工作并在单元格内显示内联按钮:

<ng-container matColumnDef="actions">
      <mat-header-cell *matHeaderCellDef> Ενέργειες</mat-header-cell>
      <mat-cell *matCellDef="let row" style="white-space: nowrap">

        <button mat-icon-button (click)="openDialog(row)">
          <span matTooltip="Λεπτομέρειες!">
          <mat-icon style="color: grey">assignment</mat-icon>
          </span>
        </button>

        <a [routerLink]="['update/', row.id]">
          <span matTooltip="Επεξεργασία!">
          <mat-icon>mode_edit</mat-icon>
          </span>
        </a>

        <a [routerLink]="['delete/', row.id]">
          <span matTooltip="Διαγραφή!">
          <mat-icon>delete</mat-icon>
          </span>
        </a>

      </mat-cell>
    </ng-container>

使用以下 css:

.example-container {
  display: flex;
  flex-direction: column;
  max-height: 750px;
  min-width: 300px;
}

.example-header {
  min-height: 64px;
  display: flex;
  align-items: center;
  padding-left: 24px;
  font-size: 20px;
}

.mat-table {
  overflow: auto;
}

.mat-header-cell .mat-sort-header-sorted {
  color: black;
}

.mat-input-container {
  font-size: 14px;
  flex-grow: 1;
  margin-left: 32px;
}

.mat-table {
  overflow: auto;
}

a {
  color: grey !important;
}


/* For Sticky Header */
.mat-header-row {
  top: 0;
  position: sticky;
  position: -webkit-sticky;
  z-index: 1;
  background-color: inherit;
}


.mat-form-field {
  font-size: 14px;
  width: 100%;
}