2

我在 Angular 2 应用程序中使用 ng2-smart-table,但其中的分页存在问题。我正在加载一个数据对象数组,它正确显示了前五个(我总共有 20 个),但是表格底部的分页显示 << >> 箭头之间没有数字,如果我点击右箭头它向我展示了接下来的 15 个。表的设置是:

private tableSettings = {
    columns: {
        id: {
          title: 'ID',
          filter: false
        },
        name: {
          title: 'Name',
          filter: false
        },
    },
    hideSubHeader: true,
    attr: {
        class: 'id-field'
    },
    actions:{
        edit: false
    },
    delete:{
        confirmDelete: true
    },
    pager : {
        display : true,
        perPage:5
    }
}

任何想法为什么它显示 << >> 而不是 << 1 2 3 4 >> ?谢谢!

4

3 回答 3

1

您没有提到您使用的是服务器数据源还是本地数据源。假设您使用的是服务器数据源,我猜您没有通过

X-Total-Count: 20

在您的响应标头中,因此客户端知道您总共有多少条记录。

希望能帮助到你。

于 2017-07-05T14:23:48.073 回答
0

您应该在传递给源的配置对象中传递 totalKey,如下所示:

this.source = new ServerDataSource(_http, 
{
dataKey: 'data.data',
endPoint: 'https://myapi/endpoint',
pagerPageKey: 'page', // this should be page number param name in endpoint (request not response) for example 'page'
pagerLimitKey: 'pageSize', // this should page size param name in endpoint (request not response)
totalKey: 'data.meta.total', // this is total records count in response, this will handle pager
});
于 2020-10-10T13:29:42.723 回答
0

我有一个类似的问题,分页根本没有显示。@Babak 几乎是对的,您需要将 X-Total-Count 添加到您的响应标头中,其中包含总行数,但您还需要通过添加 access-control-expose-headers:X-Total-Count 来公开该标头标题。

例如对于 C# WebApi:

var response = new HttpResponseMessage();
response.Headers.Add("access-control-expose-headers", "X-Total-Count");
response.Headers.Add("X-Total-Count", "100");

希望这可以帮助某人。

于 2017-08-24T08:49:12.490 回答