【问题标题】:How to pass page number , not page size while loading datatables加载数据表时如何传递页码而不是页面大小
【发布时间】:2016-04-12 16:13:31
【问题描述】:

默认情况下,我可以使用以下脚本在第二页加载数据表。

jQuery(document).ready(function() {
        dataTable =  jQuery('#tableid').DataTable( {
        processing: true,
        serverSide: true,
        "displayStart": 10,
"ajax":{
  url :"load_browser_two_data.php,
  type: "POST" 
        }
})
});

通过使用上述脚本,我可以加载第二页。但我需要传递页码而不是页面大小(“displayStart”:10)。我怎样才能做到这一点?任何帮助将不胜感激。

【问题讨论】:

  • 为什么不调用一个函数来正确计算呢?这有意义吗?
  • 根据我的要求,传递页码就足够了。你能建议怎么做吗?
  • 这里不是描述了这个功能吗? stackoverflow.com/questions/16496054/…

标签: jquery ajax datatables


【解决方案1】:

只需像这样计算页码的大小:

"displayStart": (pageNumber - 1) * 10

pageNumber = 2 会产生 10. 3 => 20,等等。

【讨论】:

    【解决方案2】:

    尽管问题已得到解答,但我的回答仍然可以对某人有所帮助。 由于获取页码发送和获取数据的可能性最小,因此也可以使用数据表的保存表状态的属性。

    $(document).ready(function() { $('#example').DataTable( { stateSave: true } ); }); ` 更多描述可以在这里找到

    [https://datatables.net/examples/basic_init/state_save.html]

    【讨论】:

      【解决方案3】:

      您可以按照建议进行计算,但问题是如果您想更改页面大小,则必须在 DataTable 设置和公式中进行更改。

      为避免这种情况,您还可以使用本机 page() 函数: https://datatables.net/reference/api/page()#Example

      这是一个如何使用它的示例:

      var table = $('#example').DataTable({
          "deferLoading": 0   /* This won't load initial data */
      
          // Your config comes here
          // ...
      });
      
      // Get the data for page 7 and draw the DataTable
      table.page( 7 ).draw( false );
      
      
      // For reference...
      
      // Go to next page 
      table.page( 'next' ).draw( 'page' );
      
      // Go to previous page
      table.page( 'previous' ).draw( 'page' );
      

      您还可以在deferLoading 上阅读更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-17
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 2021-01-07
        • 1970-01-01
        相关资源
        最近更新 更多