2017-06-29 6 views
0
<p-column header="Actions" selectionMode="multiple" [style]="{'width':'40px'}" ></p-column> 

J'ai ajouté la ligne ci-dessus qui provoque le mode multisélectionné dans mon datatable d'amorçage. mais je veux désactiver certaines cases dépendent de la condition. Comment gérer cela? J'ai essayé même en utilisant [rowstyleclass], mais il a un problème de performance car il est appelé evereytime Je souris sur une ligne particulière. Une solution?primeng mode multisélection: comment appliquer la condition pour désactiver la case à cocher en fonction de la condition

Répondre

1

Vous pouvez utiliser templating pour y parvenir. Désactivez simplement les cases à cocher en fonction de votre condition dans le modèle, et vous devriez être prêt à partir.

+0

j'ai essayé d'obtenir l'aide du modèle, mais sa ne fonctionne pas – user19041992

+0

C'est la seule solution, et je l'ai fait travailler dans un de mes projets, pour que vous puissiez le faire aussi! – trichetriche

+0

Avez-vous un code d'échantillon? – user19041992

1

Vous pouvez utiliser le modèle de colonne pour cela. Voici un exemple de code.

Ici toutes les lignes de nombres pairs sont désactivées avec la logique - [disabled] = "item.Id% 2 == 0", Vous pouvez mettre votre logique requise en place.

your.component.html

<p-dataTable #dt [value]="persons"> 
<p-column field="" header="Select" [style]="{'width':'60px', 'align-items':'center'}"> 
    <ng-template let-col let-item="rowData" pTemplate="body"> 
     <p-checkbox [disabled]="item.Id%2 == 0" 
        [style]="{'align':'center'}" 
        name="persongroup" 
        [value]="item" 
        [(ngModel)]="selectedPersons"> 
     </p-checkbox> 
    </ng-template> 
</p-column> 
<p-column field="Id" header="Id"></p-column> 
<p-column field="Name" header="Name"></p-column> 
</p-datatable> 

your.component.ts

persons : Person[] = [ 
         {'Id' : 1, 'Name' :  'person1'}, 
         {'Id' : 2, 'Name' :  'person2'} 
        ]; 
selectedPersons : Person[]=[]; 
+0

Pour les autres N'oubliez pas d'ajouter le CheckBoxModule dans app.module NgModule importations. – zulu