标签: primeng-datatable

如何设置primeng数据表列自动适合?

我想让主要的 ng 数据表列设置为自动适应以及重新调整大小。所以我已经解决了在两个 css 类 .ui-datatable table 和 .ui-datatable-tablewrapper 中更改的这个问题。

html css angular primeng-datatable

10
推荐指数
2
解决办法
2万
查看次数

可滚动表上的 PrimeNG p 表列宽度

我有一个 p 表定义为[scrollable]="true"

<p-table
  *ngIf="!loading"
  [value]="data"
  [resizableColumns]="true"
  [reorderableColumns]="true"
  [columns]="columns"
  [autoLayout]="true" <---
  [scrollable]="true" <---
  scrollHeight="75vh"
>
Run Code Online (Sandbox Code Playgroud)

会将[scrollable]表布局从 更改display: table-celldisplay:flex,因此[autoLayout]现在会忽略 。

我尝试将此处的样式设置为百分比宽度(即10%/10%/80%),但它对flex显示表格没有影响。

      <th
        *ngFor="let col of columns"
        pSortableColumn="{{ col.field }}"
        pReorderableColumn
        pResizableColumn
        [ngStyle]="{'width': col.width}" <---
      >
Run Code Online (Sandbox Code Playgroud)

我看到有一个 PrimeNG 问题对此进行了评论,但是在使用时是否可以使用任何解决方法来获取设置的列宽度[scrollable]

https://github.com/primefaces/primeng/issues/5510#issuecomment-432155295

primeng primeng-datatable primeng-turbotable

9
推荐指数
1
解决办法
2万
查看次数

AutoComplete框的多个字段(primeng 4.2.0和Angular 4)

如何在primeng自动完成框中显示多个字段.

例如:

<p-autoComplete [(ngModel)]="val" [suggestions]="results" (completeMethod)="search($event)" field="name,lastname"></p-autoComplete>

or 
<p-autoComplete [(ngModel)]="val" [suggestions]="results" (completeMethod)="search($event)" field="name+' '+lastname"></p-autoComplete>
Run Code Online (Sandbox Code Playgroud)

但是这不起作用.当我在一个字段属性中传递2个值时,如上所示,它不会在用户界面中显示任何值,对于单个值,它可以完美地工作

(例如:-field = "名称")

.

primeng angular primeng-datatable angular4-forms primeng-dropdowns

7
推荐指数
1
解决办法
1355
查看次数

如何在DataTable中使用带有命令和参数的Primeng Menu?

Primeng 的 MenuItem 有一个名为 command 的参数,该参数是单击其项目时要执行的函数。https://www.primefaces.org/primeng/#/steps 中提供了一个使用此示例以向用户提供反馈。

command: (event: any) => {
                this.activeIndex = 0;
                this.msgs.length = 0;
                this.msgs.push({severity:'info', summary:'First Step', detail: event.item.label});
            }
Run Code Online (Sandbox Code Playgroud)

但是,我想像这样使用 MenuItem 作为我的 Primeng DataTable 的列。

在此处输入图片说明

为此,我需要以这种方式使用我的菜单:

<p-column>
  <ng-template let-item="rowData"
      <p-menu #menu popup="popup" [model]="items"></p-menu>
      <button type="button" pButton icon="fa fa-list" label="Show" (click)="menu.toggle($event)"></button>
  </ng-template>
</p-column>
Run Code Online (Sandbox Code Playgroud)

获取“项目”和我点击的行以及其他类型的数据。

使用按钮我可以通过 onClick 传递项目和其他数据,但为此我需要为每个按钮创建一列。为了解决我想使用来自primeng的MenuItem的Menu。

问题是我找不到任何通过 MenuItem 中的命令传递参数的示例,而且我找不到方法来做到这一点。

如何使用带有 DataTable 的 MenuItem 来实现?

如果这是不可能的,我怎样才能实现相同的结果?

primeng angular primeng-datatable

7
推荐指数
3
解决办法
2万
查看次数

粘性标题无法与Primeng中的可调整大小的列一起使用?

我正在尝试实现列大小调整stick header。但是,如果我不使用列大小调整,则粘性标头可以很好地工作。如果同时实现这两种方法,则列调整大小是有效的,但粘性标头不起作用。

我使用了primeng的以下CSS作为粘性标头。

  :host ::ng-deep .ui-table .ui-table-thead > tr > th {
        position: -webkit-sticky;
        position: sticky;
        top: 70px;
    }

    @media screen and (max-width: 64em) {
        :host ::ng-deep .ui-table .ui-table-thead > tr > th {
            top: 100px;
        }
    }
Run Code Online (Sandbox Code Playgroud)

对于colum调整大小,我使用了以下代码[resizableColumns]="true"pResizableColumn

  <p-table [columns]="cols" [value]="cars1" [resizableColumns]="true">
    ...
     <th *ngFor="let col of columns" pResizableColumn>
Run Code Online (Sandbox Code Playgroud)

如果我删除resizbleColumnspResizableColumn粘性标头工作正常。我怎样才能使它同时起作用呢?这是stackblitz演示

html css primeng angular primeng-datatable

7
推荐指数
2
解决办法
393
查看次数

无法分配给对象“[object Array] primeng”的只读属性“0”

我想对数据表列进行排序,但是它不起作用。下面是我得到的代码和错误。当我从打字稿向后端发出服务器调用时,它可以工作。当我使用状态管理时,排序不起作用。

错误图像

<th *ngFor="let col of columns" [pSortableColumn]="col.field" [ngSwitch]="col.field">
  {{col.header}}
  <p-sortIcon [field]="col.field" ariaLabel="Activate to sort"
  ariaLabelDesc="Activate to sort in descending order" ariaLabelAsc="Activate to sort in ascending order"></p-sortIcon>
</th>
Run Code Online (Sandbox Code Playgroud)

数据源

设备动作

  export class LoadDeviceFail implements Action {
    readonly type = DeviceMgtActionTypes.LOAD_DEVICE_FAIL;
    constructor(public payload: string) { }
}
export class LoadDevices implements Action {
    readonly type = DeviceMgtActionTypes.LOAD_DEVICES;
    constructor() { }
}
export class LoadDevicesSuccess implements Action {
    readonly type = DeviceMgtActionTypes.LOAD_DEVICES_SUCCESS;
    constructor(public payload: DeviceModel[]) { }
}
Run Code Online (Sandbox Code Playgroud)

设备效果

 @Effect()
  loadDevices$ = this.action$.pipe(
    ofType( …
Run Code Online (Sandbox Code Playgroud)

sorting state-management angular primeng-datatable

7
推荐指数
1
解决办法
6294
查看次数

primeng 表上的“FilterMetadata”类型上不存在属性“value”

我正在将一个模块从 primeng 7 迁移到 primeng11 以及 angular11 代码在 ng 服务上运行得很好,功能也正常工作,但在构建时我遇到了一个奇怪的错误

 error TS2339: Property 'value' does not exist on type 'FilterMetadata | FilterMetadata[]'.
  Property 'value' does not exist on type 'FilterMetadata'.
Run Code Online (Sandbox Code Playgroud)

错误是针对以下代码的

<input *ngIf='!col.noFilter' [style.width]="'98%'" [style.height]="'25px'" pInputText type="text"
                        [placeholder]="col.filterPlaceHolder ? col.filterPlaceHolder : ''" 
                        (input)="dt.filter($event.target.value, col.field, col.filterMatchMode)" 
                        [value]="dt.filters[col.field]?.value" />
 
Run Code Online (Sandbox Code Playgroud)

我已经验证了 primengFilterMetaData接口,它的属性值如下

export interface FilterMetadata {
    value?: any;
    matchMode?: string;
    operator?: string;
}
Run Code Online (Sandbox Code Playgroud)

代码语法很好,我已经在 primeng 页面文档上验证了相同的语法https://www.primefaces.org/primeng/showcase/#/table

请帮助不确定为什么 ng 服务没有问题但构建失败。我的节点版本是节点v10.23.0

typescript primeng angular primeng-datatable angular11

7
推荐指数
2
解决办法
4832
查看次数

在 PrimeNG 中过滤数据表

如何在数据表中使用 PrimeNG 的默认过滤器过滤后获取行数。

[totalRecords]="totalRecords"始终显示最初获取的记录数。

即使经过过滤,totalRecords值仍然保持不变并且过滤后不会改变。

例如:最初totalRecords是50,过滤后,数据表中显示的记录数是15。但是我无法得到值15,而是得到50。

有什么办法吗?

primeng primeng-datatable angular5

6
推荐指数
1
解决办法
2万
查看次数

PrimeNG 表得到过滤行

我在 Angular 5 中使用 PrimeNG 6.0.2,但我在使用Table插件时遇到了问题。我切换到 Table 因为 DataTable 已被弃用。现在,我无法像以前那样访问过滤值。

假设我通过 ViewChild 在组件中定义我的表:

@ViewChild('myTable') dataTable: Table;
Run Code Online (Sandbox Code Playgroud)

使用 DataTable,我可以访问保存排序和过滤数据的_value属性:

dataTable._value[index] = ...;
Run Code Online (Sandbox Code Playgroud)

但是现在,这个属性只保存排序后的数组,而我必须使用filteredValue属性:

dataTable.filteredValue[index] = ...;
Run Code Online (Sandbox Code Playgroud)

我的这个问题是filteredValueundefined任何过滤之前,有当过滤表中的值,是null在我删除所有过滤文本。这会产生一些非常丑陋的代码。

是否可以访问当前数据,无论是排序、过滤还是与起始数组相同?还是我必须采用这种方法?

primeng angular primeng-datatable angular5

6
推荐指数
2
解决办法
2855
查看次数

空消息属性不显示

当列表数据值为空时,我需要显示一条消息:

 <p-table [value]="listElement" [paginator]="true" [rows]="10" [rowsPerPageOptions]="[5,10,20]" [showCurrentPageReport]="true" emptyMessage="No record found">
                    <ng-template pTemplate="header">
                        <tr>
                            <th>Code</th>

                        </tr>
                    </ng-template>

                    <ng-template pTemplate="body" let-elements>
                        <tr>
                            <td>{{elements.code}}</td>

                        </tr>
                    </ng-template>
                </p-table>
Run Code Online (Sandbox Code Playgroud)

问题是,当 listElement 为空时,它不会在emptyMessage属性中显示消息,而仅将表显示为空。有人知道我该如何解决这个问题吗?

primeng angular primeng-datatable

6
推荐指数
1
解决办法
7827
查看次数