0

根据他们的示例 ,我p-treeTable在 Angular 10 中使用带有复选框选择器()的 PrimeNG treeTable()向下滚动到复选框选择p-treeTableCheckbox

在此实现中,如果用户展开节点并取消选择子项,则父节点也将取消选择。这在我们的场景中是不受欢迎的行为。即使未选择所有子节点,我也希望父节点保持选中状态。但是如果用户选择/取消选择一个父节点,那么选择/取消选择所有子节点仍然有效。

例如,在他们的示例中,展开第一个节点“Applications”,展开下一个节点“Angular”,然后取消选中像“mobile.app”这样的子节点 => Angular 和 Applications 父节点都未选中。

那么当子节点改变时,是否可以让父节点保持不变?

我的桌子是:

<p-treeTable [value]="allUsers" selectionMode="checkbox" [(selection)]="selectedNodes">
    <ng-template pTemplate="body" let-rowNode let-rowData="rowData">
        <tr>
            <td>
                <div>
                    <p-treeTableToggler [rowNode]="rowNode" id="{{rowNode.node.Email}}">
                    </p-treeTableToggler>
                    <p-treeTableCheckbox [value]="rowNode"></p-treeTableCheckbox>
                    <span>{{rowNode.node.data.Name}}</span>
                </div>
            </td>
        </tr>
    </ng-template>
</p-treeTable>

似乎没有任何行为属性p-treeTableCheckbox会影响这一点?

4

1 回答 1

0

事实证明,有一个名为的属性[propagateSelectionUp]="false"可以应用并完全按照我的意愿工作......问题是它不存在于p-treeTable组件上,仅存在于p-tree组件上。所以解决方案是移动到p-tree组件并实现[propagateSelectionUp]="false"属性。

结果:

<p-tree [value]="allUsers" selectionMode="checkbox" [(selection)]="selectedNodes" [propagateSelectionUp]="false">
   ...
于 2021-02-09T10:22:51.063 回答