当我们服务呼叫返回空数据时,将禁用Extjs分页工具

时间:2018-09-21 05:38:08

标签: extjs pagination

当我们通过分页为extjs提供服务数据为null时,则禁用了分页工具栏。

我们有一些要求,例如在启用过滤器按钮后,我们将在第一页和其余页面显示为空的过滤数据。总计数将相同。

示例

如果总共有1000条记录,并且页面大小为50,那么我们的总页数将为20。如果启用过滤器,则将获得500条记录,这些记录将被过滤,在这种情况下,我们将显示总记录为1000(实际大小,不带过滤器),并且从11页开始,我们将通过返回空白记录来显示空白页。

问题

当我们将空记录返回给Extjs时,它正在禁用分页,我们希望禁用“下一页”,但是需要启用“上一页”按钮

Extjs是否有可能?

您是否知道为什么禁用分页工具栏?

Image

1 个答案:

答案 0 :(得分:0)

因此,这是一个FIDDLE

SERVER:我正在使用一些免费服务加载数据,其中我有10条记录(每页5条),但是我从服务器发送total: 15来强制工具栏显示3页。在服务器上,查询page === 3是否发送空数组。这是CODE

CLIENT:在分页工具栏中,我定义了change事件监听器,确保将始终启用按钮。还要输入总页数计数器的启用和正确的页码输入。

listeners: {
    change: function (cmp, config) {
       var store = cmp.up('grid').getStore();

       var numb = cmp.getComponent('inputItem');
       numb.setDisabled(false);
       numb.setValue(store.currentPage);

       var text = cmp.getComponent('afterTextItem');
       text.setHtml('of ' + (store.totalCount / store.pageSize));

       cmp.setChildDisabled('#first', false);
       cmp.setChildDisabled('#prev', false);
       cmp.setChildDisabled('#next', false);
       cmp.setChildDisabled('#last', false);
       cmp.setChildDisabled('#refresh', false);
   }
}