为 HTML 中的每一行添加删除和更新按钮

Posted

技术标签:

【中文标题】为 HTML 中的每一行添加删除和更新按钮【英文标题】:Add Delete and Update Button for each row in HTML 【发布时间】:2021-03-12 02:52:22 【问题描述】:

我有一个像这样显示一些值的 html 页面:

HTML 文件是:

<h1 mat-dialog-title color="primary">
    MXK License Details
</h1>
<mat-dialog-content>
    <div class="generate-full-width example-container mat-elevation-z8">
        <!---->
        <table mat-table [dataSource]="mxkLicenses">
    
            <ng-container matColumnDef="Hardware Key">
                    <th mat-header-cell *matHeaderCellDef class="customtd" style="font-weight: bold;" style="font-size:15px;"><strong> Hardware Key </strong></th>
                    <td mat-cell *matCellDef="let element" class="customtd"> <textarea rows="2" cols="20" wrap="hard">element.hardwareKey</textarea> </td>
            </ng-container>

            <ng-container matColumnDef="MXK IP Address">
                <th mat-header-cell *matHeaderCellDef class="customtd" style="font-weight: bold;" style="font-size:15px;"><strong> MXK IP Address </strong></th>
                <td mat-cell *matCellDef="let element" class="customtd"> element.mxkIpAddress </td>
            </ng-container>
    
            <ng-container matColumnDef="MXK License Key">
                    <th mat-header-cell *matHeaderCellDef style="font-weight: bold;" style="font-size:15px;"><strong> MXK License Key </strong></th>
                    <td mat-cell *matCellDef="let element"> <textarea rows="2" cols="20" wrap="hard">element.mxkLicenseKey</textarea> </td>
            </ng-container>
            <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky:true"></tr>
            <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
    </table>
    </div>
    </mat-dialog-content>
    <mat-dialog-actions align="end">
        <button mat-button mat-raised-button mat-dialog-close cdkFocusInitial color="warn">Close</button>
    </mat-dialog-actions>

我想在每一行前面添加删除和更新按钮,如下所示:

布局必须与第一张图片相同。我尝试添加按钮,但它们靠近关闭按钮本身。以下是来自 component.ts 的代码:

@Component(
  selector: 'mxk-licenses-list-dialog',
  templateUrl: 'mxk-licenses-list-dialog.html',
)

export class mxkLicensesListDialog implements OnInit 
  mxkLicenses : any;
  displayedColumns: string[] = ['Hardware Key', 'MXK IP Address', 'MXK License Key'];
  constructor(
    public dialogRef: MatDialogRef<AddProductDialog>,
    private generateLicenseService: GeneratelicenseService,
    @Inject(MAT_DIALOG_DATA) public data) 
  

  ngOnInit() 
    console.log("before the call : "+this.mxkLicenses);
    if(this.mxkLicenses === undefined) 
      this.generateLicenseService.getMxkLicenses()
      .subscribe((data) => 
        this.mxkLicenses = data;
        console.log("after the call : "+this.mxkLicenses);
      );
    

  

我被困在这个问题上好几天了。我也想添加总条目和页码以及搜索按钮,但布局必须是旧的。请帮忙。

编辑:

添加图片以显示间距问题。

【问题讨论】:

您可以将这些操作按钮放在一个单独的组件中,并将其循环到您想要的任何地方。 @AhamedSafnaj 你能指导我如何做到这一点吗?我是前端部分的新手,我尝试的一切都失败了。 【参考方案1】:

它只是添加一个新列。

你的 displayColumns 喜欢

//see that you add a new column "actions"
displayedColumns:['hardwareKey','mxkIpAddress','mxkLicenseKey','actions']

并添加

    <ng-container matColumnDef="actions">
       <th mat-header-cell *matHeaderCellDef style="font-weight: bold;" style="font-size:15px;"><strong>Actions</strong></th>
        <td mat-cell *matCellDef="let element;let i=index">
          <button type="button" style="margin-left:2px" (click)="delete(element,i)">Delete</button>
          <button type="button" style="margin-left:2px" (click)="update(element,i)">Update</button>
          <button type="button" (click)="copyLicenceKey(element,i)">copyLicenceKey</button>
        </td>
    </ng-container>

【讨论】:

如何增加这些列之间的间距?列现在紧密间隔。添加照片 一个垫表,按缺陷分布列。您可以将style.min-width 添加到一列以提供最小宽度,或者为“td”添加边距或填充 谢谢。你能帮忙添加一个搜索按钮吗?我必须像上面的示例图片一样根据客户 ID 进行搜索。

以上是关于为 HTML 中的每一行添加删除和更新按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何添加链接以编辑和删除使用php制定的表格中的每一行

如何在gridPanel中的每一行添加一个按钮

android中每行中带有添加和删除按钮的ListView

存储 HTML 列表的顺序而不更新数据库中的每一行?

js 表格的每一行都有一个按钮 点击按钮修改当前行某一列的信息

如何在 slickgrid 的每一行上创建一个删除按钮并确认?