【问题标题】:How can I set the default sort order on the primeng datatable?如何在primeng数据表上设置默认排序顺序?
【发布时间】:2020-09-11 18:13:10
【问题描述】:

我正在使用 prime-ng dataTable 组件来显示用户列表。我希望此列表默认按第一列降序排序,并让 dataTable 将第一列显示为已排序。

 <p-dataTable [value]="webUserSummaryList" [rows]="10"  reorderableColumns="true">
    <p-column field="userName" header="Username" [filter]="true" [sortable]="true"></p-column>
    <p-column field="emailAddress" header="Email" [filter]="true" [sortable]="true"></p-column>
    <p-column field="firstName" header="First Name" [filter]="true" [sortable]="true"></p-column>
    <p-column field="lastName" header="Last Name" [filter]="true" filterMatchMode="contains" [sortable]="true"></p-column>
</p-dataTable>   

编辑:我想出了一种设置默认排序列的方法是使用 sortField="userName"。但是,我仍然无法让该列默认为降序。

【问题讨论】:

    标签: angular primeng


    【解决方案1】:

    我想通了。应该添加这两个属性:

    sortField="userName" [sortOrder]="-1"
    

    sortField 匹配列名,sortOrder 可以是 1 表示升序,-1 表示降序。

    这是有效的解决方案:

    <p-dataTable [value]="webUserSummaryList" [rows]="10"  reorderableColumns="true" sortField="userName" sortOrder="-1">
    <p-column field="userName" header="Username" [filter]="true" [sortable]="true"></p-column>
    <p-column field="emailAddress" header="Email" [filter]="true" [sortable]="true"></p-column>
    <p-column field="firstName" header="First Name" [filter]="true" [sortable]="true"></p-column>
    <p-column field="lastName" header="Last Name" [filter]="true" filterMatchMode="contains" [sortable]="true"></p-column>
    

    【讨论】:

    • [sortOrder]="-1"
    • 请将您的答案标记为该问题的答案。
    • sortOrder="-1" 对我不起作用,但 [sortOrder]="-1" 对我起作用
    • 我尝试使用 [sortField]="userName" [sortOrder]="-1" 但它不起作用。 [] 和没有 [] 有区别吗?
    【解决方案2】:

    如果您对多列进行排序,您可以使用参数设置初始排序(处理已弃用的 DataTable 和当前的 PrimeNG 表组件):

    [multiSortMeta]="[{field: 'state', order: -1}, {field: 'displayName', order: 1}]"
    

    表格组件(PrimeNG 7+)示例:

    <p-table [value]="products2" sortMode="multiple" [multiSortMeta]="[{field: 'code', order: -1}, {field: 'name', order: 1}, {field: 'category', order: -1}]">
      <ng-template pTemplate="header">
        <tr>
          <th pSortableColumn="code">Code <p-sortIcon field="code"></p-sortIcon></th>
          <th pSortableColumn="name">Name <p-sortIcon field="name"></p-sortIcon></th>
          <th pSortableColumn="category">Category <p-sortIcon field="category"></p-sortIcon></th>
          <th pSortableColumn="quantity">Quantity <p-sortIcon field="quantity"></p-sortIcon></th>
          <th pSortableColumn="price">Price <p-sortIcon field="price"></p-sortIcon></th>
        </tr>
      </ng-template>
      <ng-template pTemplate="body" let-product>
        <tr>
          <td>{{product.code}}</td>
          <td>{{product.name}}</td>
          <td>{{product.category}}</td>
          <td>{{product.quantity}}</td>
          <td>{{product.price | currency: 'USD'}}</td>
        </tr>
      </ng-template>
    </p-table>
    

    【讨论】:

    • 谢谢。我需要对多个排序顺序进行默认排序。这行得通。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2023-04-01
    相关资源
    最近更新 更多