简体   繁体   English

dataTable Primeng和Angular 4中的选定项找到索引-1

[英]Selected Item in dataTable Primeng and Angular 4 find index -1

Hi everyone i want to select item for delete and edit, i don't use CRUD dataTable of Primeng i use ng-template and column 大家好,我想选择要删除和编辑的项目,我不使用CRUD dataPrimeng表我使用ng-template和column

So My code like this 所以我的代码是这样的

 <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>

and when i click to delete user i need first the index so i call this function in component 当我单击以删除用户时,我首先需要索引,所以我在组件中调用此函数

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

but when i click in deleteUser 但是当我单击deleteUser时

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

and this functions to get rowselected 而这个功能得到rowselected

 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;
    }

i get user with all data 我让用户拥有所有数据
but in this.findSelectedUserIndex() i get -1 但是在this.findSelectedUserIndex()中我得到-1
so anyone can help me to resolve this issue and thanks 这样任何人都可以帮助我解决此问题,谢谢

Add rowIndex to your ng-template and pass it when delete is clicked as rowIndex添加到ng-template并在单击delete时将其传递给

<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>

Your method should be as 您的方法应为

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM