当前位置: 首页 > 知识库问答 >
问题:

智能表分页不适用于服务器端筛选

谢烨烨
2023-03-14

我有一个智能表,我正在AngularJS工作。该表使用自定义管道来搜索和排序其数据。我还要求表具有工作分页,以及一个下拉框,以便您可以选择要显示的行数(想想数据)。

对于搜索和排序,自定义管道可以毫无问题地触发我的ajax请求。但是,当我单击任何页码或更改要显示的行数时,管道不会被触发。

页码似乎被设置为调用setPage(page)(这是由st pagination指令设置的),但是什么也没有发生,也没有抛出错误。

如何让自定义管道在显示行数更改时或在分页控件中单击页面#时触发?

这是我的HTML:

<table class="table table-striped table-bordered" st-table="leadsCollection" st-safe-src="leads" st-pipe="serverFilter">
...
<tbody>
   <tr data-toggle="modal" data-target="#modal-source" ng-repeat="source in leadsCollection" ng-click="rowClick($index);">
      <td>{{source.leaddate}}</td>
      <td>{{(source.distance > 100) ? 'Long Distance' : 'Local'}}</td>
      <td>{{source.origin_city}}, {{source.origin_state}}</td>
      <td>{{source.destination_city}}, {{source.destination_state}}</td>
      <td>{{source.est_move_date}}</td>
      <td>{{source.distance}} mi</td>
      <td>{{source.number_bedrooms}} br</td>
      <td></td>
   </tr>
</tbody>
<tfoot>
  <tr>
     <td colspan="8">
        <div class="form-group col-md-1">
            <label>Show:</label> <select class="form-control" ng-model="itemsByPage"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select>
        </div>
        <div class="pull-right" st-pagination="" st-items-by-page="itemsByPage"></div>
     </td>
  </tr>
</tfoot>
</table>

这是控制器:

.controller('Leads', function ($scope, $http) {
$scope.leads = [];
$scope.leadsCollection = [].concat($scope.leads);
$scope.itemsByPage = "10";

$scope.rowClick = function (idx)
{
    $scope.editor = $scope.leads[idx];
}

$scope.serverFilter = function(tablestate)
{
    $http.post("/portal/api/loadleads",tablestate).success(function(response){
        console.log(response);
        $scope.leads = response;
        $scope.leadsCollection = [].concat($scope.leads);
    });
}

})

共有1个答案

顾兴昌
2023-03-14

为了让智能表触发过滤器,您必须设置数据加载的页数。要使上述过滤器正常工作,只需添加:

tablestate.pagination.numberOfPages = response.totalPages;

智能表似乎需要设置此选项,以便正确绑定事件。

 类似资料:
  • 我在数据服务器端处理中的代码有问题。问题在于分页。我的数据给我3页,但只有第一次点击分页工作的数字(不管我点击了什么数字)。在此之后,任何数量的任何点击都只会使表格内容闪烁。表中没有任何变化。 谁能帮我提些建议做什么?非常感谢。 编辑: 刚刚修好了。请核对答案。 我的代码:

  • 我试图使Angularjs服务器端分页在这个链接https://l-lin.github.io/angular-datatables/#/serverSideProcessing 所以我用这个暗号 我在dataSrc参数中手动添加了recordsTotal、recordsFiltered和row 这是添加recordsTotal、recordsFiltered和row之前和之后的json数据 添加

  • 我目前正在使用:“angular smart table”:“2.1.0”“angular”:“1.3.15” 单击智能表格项目时,我的应用程序会在另一个页面中显示项目详细信息。在访问项目页面后,我想回到智能表格页面上的相同页码(屏幕截图上的2):屏幕截图 我的问题: 不知道如何保存currentPage(rootscope、Parameter?) 以下是分页视图,用于管理分页: “智能表插件指令

  • 问题内容: 因此我得到了一个供女巫使用的智能表,我可以重新加载整个数据集(我需要它来绘制图形)。但我不希望一次渲染所有数据(太多)。因此,在文档中有一个叫做“客户端分页”的东西,但是由于某种原因,它似乎不起作用。保存整个数据集 我的模拟是: 问题答案: 问题在于,如果异步加载数据(如果我理解您的描述,您可能会这样做),则需要告诉智能表观看源集合,以便在发生更改时可以刷新它。为此,您需要使用

  • 这很有效 app@[服务器:/u01/主页/apli/app/trx/appS\u appS/appS\u appS/日志]:/ IBM/AIX RISC System/6000的TNS Ping实用程序:版本10.2.0.4.0-2015年9月8日01:01:57生产 版权所有(c)1997、2007,Oracle。保留所有权利。 使用的参数文件: /u01/home/app/oracle/pr

  • 通过使用角智能表,如何使用偏移值获得结果集。比如我数据库里有100条记录 首先,我需要从数据库中获取20条记录,并且每页只显示10个项目。 点击第三页后,需要查询数据库(服务调用)并获取另外20条记录... etc(但第二页没有服务器调用) 我正在使用SmartTablePipe/ajax插件来显示记录。 如何使用这个来实现。 http://lorenzofox3.github.io/smart-