簡體   English   中英

我想使用DataTables列搜索。 但是我不知道服務器端代碼應該如何

[英]I want to use DataTables column search. But I don't know how should be server side code

我使用此代碼進行列搜索https://datatables.net/examples/api/multi_filter_select.html我使用Spring MVC,所以我使用了contoller類。 我從MongoDB獲取數據。 我的問題是控制器類應該如何? 這是我的Javascript代碼:

var table = $('#example').DataTable({
                "processing": true,
                "serverSide": true,
                "ajax": {"url": "locations/pagedList", "type": "GET"},
                "searching": true,
                "ordering": false,
                "columns": [
                    {"data": "id", "visible": false},
                   // .........
                   ],
                   "initComplete": function () {

                    //for search
                    var column = this.api().column(7);

                    var select = $('<select><option value=""></option></select>')
                        .appendTo($(column.footer()).empty())
                        .on('change', function () {

                            column
                                .search($(this).val())
                                .draw();
                        });

                    column.data().unique().sort().each(function (d) {
                        select.append('<option value="' + d + '">' + d + '</option>')
                    });

這是我的控制器端:

 @RequestMapping(value = "/pagedList", method = RequestMethod.GET)
    @ResponseBody
    public LocationListResponse pagination(@RequestBody int draw,
                                           @RequestBody DataColumns[] columns,
                                           @RequestBody int start,
                                           @RequestBody int length,
                                           @RequestBody Search search) { //... }

我在瀏覽器中看到這樣的請求:

columns[0][data]=
columns[0][name]=
columns[0][orderable]=false
columns[0][search][regex]=false
columns[0][search][value]=
columns[0][searchable]=true
columns[1][data]=
columns[1][name]=
columns[1][orderable]=false
columns[1][search][regex]=false
columns[1][search][value]=
columns[1][searchable]=true
order[0][column]=4
order[0][dir]=desc
order[1][column]=4
order[1][dir]=desc
search[regex]=false
search[value]=

因此,我找到了有關此內容的網站: 用於DataTable服務器端處理的DataStructure

我收到此錯誤:400錯誤的請求

請幫我 :)

我解決了我的問題。 首先,我們應該更改並在javascript中添加一些屬性:

"ajax": {
                    "url": "locations/pagedList",
                    "type": "POST",
                    dataType: "json",
                    "contentType": "application/json",
                    "data": function ( d ) {
                        return JSON.stringify( d );
                    }

其次,我們應該像這樣更改控制器:

@RequestMapping(value = "/pagedList", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public LocationListResponse pagination(@RequestBody JsonNode data) {

而已 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM