angular2 table 自动排序sortable

import {NgbPaginationConfig} from "@ng-bootstrap/ng-bootstrap";
import {Input,Component} from "@angular/core";
@Component({
    selector: 'table-sortable',
    templateUrl: './table-sortable.html',
    providers: [
        NgbPaginationConfig
    ]
})
export class TableSortable {

    @Input() columns: any[];
    @Input() data: any[];
    @Input() sort: any;
    page:number = 1;
    pageSize:number = 10;

    constructor(config: NgbPaginationConfig) {
        // customize default values of paginations used by this component tree
        config.size = 'sm';
        config.boundaryLinks = true;
        config.pageSize = this.pageSize;
    }

    selectedClass(columnName): any {
        return columnName == this.sort.column ? 'sort-' + this.sort.descending : false;
    }

    changeSorting(columnName): void {
        var sort = this.sort;
        if (sort.column == columnName) {
            sort.descending = !sort.descending;
        } else {
            sort.column = columnName;
            sort.descending = false;
        }
    }

    convertSorting(): string {
        return this.sort.descending ? '-' + this.sort.column : this.sort.column;
    }
}
<table class="table table-hover table-striped table-sortable">
    <thead>
    <tr>
        <th *ngFor="let column of columns" [class]="selectedClass(column.variable)" (click)="changeSorting(column.variable)">
            {{column.display}}
        </th>
    </tr>
    </thead>
    <tbody>
    <tr *ngFor="let object of data | orderBy : convertSorting() | paging: page: pageSize">
        <td *ngFor="let column of columns">
            {{object[column.variable] | format : column.filter}}
        </td>
    </tr>
    </tbody>
</table>
<div class="row">
    <div class="col-xs-3">
        共{{data.length ? data.length : 0}}条数据  当前第{{page}}页
    </div>
    <div class="col-xs-9">
        <ngb-pagination [collectionSize]="data.length" [(page)]="page"></ngb-pagination>
    </div>
</div>

转载于:https://my.oschina.net/u/2499632/blog/776483

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值