【问题标题】:Selected Item in dataTable Primeng and Angular 4 find index -1dataTable Primeng和Angular 4中的选定项目查找索引-1
【发布时间】:2017-05-05 03:04:32
【问题描述】:

大家好,我想选择删除和​​编辑的项目,我不使用 Primeng 的 CRUD 数据表,我使用 ng-template 和列

所以我的代码是这样的

 <p-dataTable [value]="users" selectionMode="single" [(selection)]="selectedUser" (onRowSelect)="onRowSelect($event)" [paginator]="true" rows="15" [responsive]="true">
    <p-column field="nom" header="Nom" [sortable]="true"></p-column>
    <p-column field="email" header="Email" [sortable]="true"></p-column>
    <p-column field="brand" header="Modfier" [sortable]="true">
            <ng-template let-col let-user="rowData" pTemplate="body">
                <button type="button" pButton (click)="editUser(user)" tooltipPosition="top" icon="fa fa-pencil"></button>
            </ng-template>

    </p-column>
    <p-column field="color" header="Supprimer" [sortable]="true">
        <ng-template let-col let-user="rowData" pTemplate="body">
            <button type="button" pButton (click)="deleteUser(user)" tooltipPosition="top" icon=" fa fa-trash"></button>
        </ng-template>
    </p-column>
</p-dataTable>

当我点击删除用户时,我首先需要索引,所以我在组件中调用此函数

findSelectedUserIndex(): number {
        return this.users.indexOf(this.selectedUser);
 }

但是当我点击删除用户时

 deleteUser(user:User){
        console.log(user);
        console.log("here",this.findSelectedUserIndex());
    }

这个函数可以让行被选中

 onRowSelect(event) {
        this.newUser = false;
        this.user = this.cloneUser(event.data);
        this.displayDialog = true;
    }

    cloneUser(c: User): User {
        let usr = new User();
        for(let prop in c) {
            usr[prop] = c[prop];
        }
        return usr;
    }

我得到所有数据的用户
但在 this.findSelectedUserIndex() 中我得到 -1
所以任何人都可以帮助我解决这个问题并感谢

【问题讨论】:

    标签: angular primeng


    【解决方案1】:

    rowIndex 添加到您的 ng-template 并在单击删除时将其传递为

    <p-column field="color" header="Supprimer" [sortable]="true">
            <ng-template let-col let-user="rowData" let-i="rowIndex" pTemplate="body">
                <button type="button" pButton (click)="deleteUser(user,i)" tooltipPosition="top" icon=" fa fa-trash"></button>
            </ng-template>
        </p-column>
    

    你的方法应该是

    deleteUser(user:User,index:number){
            console.log(user);
            console.log("here",index);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2021-09-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多