如何使DataTables与RESTful API一起使用

时间:2014-04-01 15:29:01

标签: jquery rest datatable

所以我正在开展一个项目,我自然希望以网格格式显示信息,经过一整天尝试不同的产品后,我遇到了http://datatables.net/api这很容易实现,并且做得更多对我而言比我发现的任何其他东西都要感问题是我没有看到一种简单的方法可以使我的RESTful调用服务器运行良好。我很有可能只是忽略了文档中的内容,但我并没有看到我正在寻找的内容。我需要的信息几乎全部在搜索参数中。信息格式为:

GET COLLECTION ?where=
GET COLLECTION ?include=
GET COLLECTION ?orderby=
GET COLLECTION ?sortby=
GET COLLECTION ?pageIndex=
GET COLLECTION ?limit=
GET COLLECTION ?fields=
GET COLLECTION ?q=

我已经找到了帖子Editable jQuery Grid Recommendations with REST API,它解释了如何用jqGrid做类似的事情,但我宁愿尝试让Datatables工作,因为它对我来说更有意义。任何帮助将不胜感激。

修改

我真正想要的是,到目前为止我认为没有回答的是如何找出客户端输入的URL以发出请求。例如,如果我有查询:

www.somewebsite.com/v1/people?limit=10&pageIndex=20&orderby=personID

比我预期的更明显的是orderby是personID,限制为10,pageIndex为20。

问题的关键在于往返服务器,我需要在数据表更改时随时使用该类型的URL,因为我们想要的只是为每个页面提供数据当用户要求时。因此,如果我从服务器获得该请求,我知道数据表将在第3页上,其中10个条目由personID列排序。你如何将这些信息提供给dataTables表,如果他们改变了什么,你会怎样再把它取回(我假设你能回答前者而不是后者)?

2 个答案:

答案 0 :(得分:2)

在与Datatables的创建者进行了大量工作之后,我发现我想要的大部分内容已经内置到他的应用程序中。具体来说,我需要使用

"bProcessing": true,
"bServerSide": true,
"sAjaxSource": URL,

这是告诉表让服务器执行所有查询的方法。

我有一个或多或少的工作示例http://jsfiddle.net/RM3W2/5/的示例。我所问的核心代码主要是“设置”。

答案 1 :(得分:1)

这样的东西会起作用

<强> HTML

<div class="container">
    <table id="example">
    </table>
</div>

<强>代码

var aaData = [];

    $.ajax({
      url:"your url",
      success:function(data){
        for(i in data){
             aaData.push([data[i].property,data[i].property2,....])
         }

         //Then create the DataTable object
      }

})

示例Fiddle使用 $。ajax aaData 属性

此外,您可以使用sAjaxSource属性,但您需要更改REST服务的响应

示例Fiddle使用 sAjaxSource