使用复选框进行多项选择 [PrimeNG]
Multiple selection using checkboxes [PrimeNG]
我需要有关“多选(单击 + shift)”的帮助,我不明白如何让它在复选框上起作用。
在文档中有一个示例“复选框选择”并注意 “通过将列的 selectionMode 属性 启用为“多个”,也可以使用复选框处理多项选择。
以及来自文档的示例:
<p-table [value]="products" [(selection)]="selectedProducts3" dataKey="code" responsiveLayout="scroll">
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<th>Name</th>
<th>Category</th>
<th>Quantity</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-product>
<tr>
<td>
<p-tableCheckbox [value]="product"></p-tableCheckbox>
</td>
<td>{{product.code}}</td>
<td>{{product.name}}</td>
<td>{{product.category}}</td>
<td>{{product.quantity}}</td>
</tr>
</ng-template>
</p-table>
但是当我尝试添加这个 属性 'selectionMode' 它仍然不起作用。
我的新例子:
<p-table [value]="products" [(selection)]="selectedProducts3" dataKey="code" responsiveLayout="scroll"
selectionMode="multiple"> // <--------- Added line with selectionMode property
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<th>Name</th>
<th>Category</th>
<th>Quantity</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-product>
<tr>
<td>
<p-tableCheckbox [value]="product"></p-tableCheckbox>
</td>
<td>{{product.code}}</td>
<td>{{product.name}}</td>
<td>{{product.category}}</td>
<td>{{product.quantity}}</td>
</tr>
</ng-template>
我认为有一些愚蠢的错误,但我是 PrimeNG 的新手,所以会非常感谢任何帮助。
这里有 demo.
您必须将 metaKeySelection
属性 设置为 true 才能使用 (click + shift)
启用多选
要使行可选择,请使用 pSelectableRow
和 pSelectableRowIndex
属性。
修改后的代码如下:
<p-table
[value]="products"
[(selection)]="selectedProducts3"
dataKey="code"
selectionMode="multiple"
[metaKeySelection]="true"
>
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<!-- others -->
</tr>
</ng-template>
<ng-template pTemplate="body" let-product let-rowIndex="rowIndex">
<tr [pSelectableRow]="product" [pSelectableRowIndex]="rowIndex">
<td>
<p-tableCheckbox
[value]="product"
></p-tableCheckbox>
</td>
<td>{{ product.code }}</td>
<!-- others -->
</tr>
</ng-template>
</p-table>
我需要有关“多选(单击 + shift)”的帮助,我不明白如何让它在复选框上起作用。
在文档中有一个示例“复选框选择”并注意 “通过将列的 selectionMode 属性 启用为“多个”,也可以使用复选框处理多项选择。
以及来自文档的示例:
<p-table [value]="products" [(selection)]="selectedProducts3" dataKey="code" responsiveLayout="scroll">
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<th>Name</th>
<th>Category</th>
<th>Quantity</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-product>
<tr>
<td>
<p-tableCheckbox [value]="product"></p-tableCheckbox>
</td>
<td>{{product.code}}</td>
<td>{{product.name}}</td>
<td>{{product.category}}</td>
<td>{{product.quantity}}</td>
</tr>
</ng-template>
</p-table>
但是当我尝试添加这个 属性 'selectionMode' 它仍然不起作用。
我的新例子:
<p-table [value]="products" [(selection)]="selectedProducts3" dataKey="code" responsiveLayout="scroll"
selectionMode="multiple"> // <--------- Added line with selectionMode property
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<th>Name</th>
<th>Category</th>
<th>Quantity</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-product>
<tr>
<td>
<p-tableCheckbox [value]="product"></p-tableCheckbox>
</td>
<td>{{product.code}}</td>
<td>{{product.name}}</td>
<td>{{product.category}}</td>
<td>{{product.quantity}}</td>
</tr>
</ng-template>
我认为有一些愚蠢的错误,但我是 PrimeNG 的新手,所以会非常感谢任何帮助。
这里有 demo.
您必须将 metaKeySelection
属性 设置为 true 才能使用 (click + shift)
启用多选
要使行可选择,请使用 pSelectableRow
和 pSelectableRowIndex
属性。
修改后的代码如下:
<p-table
[value]="products"
[(selection)]="selectedProducts3"
dataKey="code"
selectionMode="multiple"
[metaKeySelection]="true"
>
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th>Code</th>
<!-- others -->
</tr>
</ng-template>
<ng-template pTemplate="body" let-product let-rowIndex="rowIndex">
<tr [pSelectableRow]="product" [pSelectableRowIndex]="rowIndex">
<td>
<p-tableCheckbox
[value]="product"
></p-tableCheckbox>
</td>
<td>{{ product.code }}</td>
<!-- others -->
</tr>
</ng-template>
</p-table>