简体   繁体   English

在primeNG数据表中未选中复选框

[英]Checkbox not getting selected in primeNG datatable

I am building an application using angular 2. We are having a requirement where in we need to display data in a table with filtering on each column and pagination. 我正在使用angular 2构建应用程序。我们有一个需求,我们需要在表中显示数据,并在每列和分页上进行过滤。 Apart from these we would need check boxes on each row so that the user can select multiple rows to perform certain operations. 除此之外,我们还需要在每行上都具有复选框,以便用户可以选择多行来执行某些操作。 For this purpose i am using PrimeNG datatable, but i face an issue when using the table in checkbox seletion mode. 为此,我正在使用PrimeNG数据表,但是在复选框选择模式下使用该表时会遇到问题。 When i click on the checkbox the row gets selected but the checkbox is not checked. 当我单击复选框时,该行被选中,但未选中该复选框。 I am pasting the code below. 我正在粘贴下面的代码。

 <p-dataTable [value]="devices" [(selection)]="selectedDevices">
    <p-column [style]="{'width':'38px'}" selectionMode="multiple"></p-column>
    <p-column field="macAddress" header="STB"></p-column>
    <p-column field="userId" header="User ID"></p-column>
    <p-column field="rackNumber" header="Rack No"></p-column>
    <p-column field="modelNumber" header="Model"></p-column>
    <p-column field="environment" header="Environment"></p-column>
    <p-column field="uiBuild" header="UI Build"></p-column>
    <footer>
        <ul>
            <li *ngFor="let device of selectedDevices" style="text-align: left">{{device.macAddress + ' - ' + device.userId + ' - ' + device.rackNumber + ' - ' + device.modelNumber}}</li>
        </ul>
    </footer>
</p-dataTable>

can someone tell me what am i missing here? 有人可以告诉我我在这里想念什么吗?

Try this and see if it helps 试试这个,看看是否有帮助

<p-dataTable [value]="devices" selectionMode="multiple" [(selection)]="selectedDevices">
    <p-column field="macAddress" header="STB"></p-column>
    <p-column field="userId" header="User ID"></p-column>
    <p-column field="rackNumber" header="Rack No"></p-column>
    <p-column field="modelNumber" header="Model"></p-column>
    <p-column field="environment" header="Environment"></p-column>
    <p-column field="uiBuild" header="UI Build"></p-column>
    <footer>
        <ul>
            <li *ngFor="let device of selectedDevices" style="text-align: left">{{device.macAddress + ' - ' + device.userId + ' - ' + device.rackNumber + ' - ' + device.modelNumber}}</li>
        </ul>
    </footer>
</p-dataTable>

selectionMode needs to be specified for p-dataTable not p-column. 需要为p-dataTable而不是p列指定selectionMode。

PrimeNg DataTable will automatically add the column for select box so you don't have to do so. PrimeNg DataTable将自动为选择框添加列,因此您不必这样做。

You probably just forget to add dataKey="macAddress" in p-dataTable : 您可能只是忘记在p-dataTable中添加dataKey =“ macAddress”:

 <p-dataTable [value]="devices" [(selection)]="selectedDevices"  dataKey="macAddress">
    <p-column [style]="{'width':'38px'}" selectionMode="multiple"></p-column>
    <p-column field="macAddress" header="STB"></p-column>
    <p-column field="userId" header="User ID"></p-column>
    <p-column field="rackNumber" header="Rack No"></p-column>
    <p-column field="modelNumber" header="Model"></p-column>
    <p-column field="environment" header="Environment"></p-column>
    <p-column field="uiBuild" header="UI Build"></p-column>
    <footer>
        <ul>
            <li *ngFor="let device of selectedDevices" style="text-align: left">{{device.macAddress + ' - ' + device.userId + ' - ' + device.rackNumber + ' - ' + device.modelNumber}}</li>
        </ul>
    </footer>
</p-dataTable>

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

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