防止数据表中不需要的查询字符串

时间:2015-03-12 05:38:12

标签: datatable

我正在使用带有服务器端处理的数据表。它将所有参数发送到服务器,甚至可以进行列排序等基本操作。如何防止它,任何想法?以下是作为查询字符串传递的ajax get参数。

columns[0][data]    0
columns[0][name]    
columns[0][orderable]   true
columns[0][search][regex]   false
columns[0][search][value]   
columns[0][searchable]  true
columns[1][data]    1
columns[1][name]    
columns[1][orderable]   true
columns[1][search][regex]   false
columns[1][search][value]   
columns[1][searchable]  true
columns[2][data]    2
columns[2][name]    
columns[2][orderable]   true
columns[2][search][regex]   false
columns[2][search][value]   
columns[2][searchable]  true
draw    2
length  10
order[0][column]    1
order[0][dir]   asc
search[regex]   false
search[value]   
start   0

这是数据表初始化javascript代码,

$(selector).dataTable({
        "processing": true,
        "serverSide": true,
        "ajax": url,
        "autoWidth": false,
        "aoColumnDefs":[
                {
                    'aTargets': 0,
                    'bSortable': true
                },
                {
                    'aTargets': 1,
                    'bSortable': true,
                    'mRender': function (link) {
                        return '<a href="' + link + '">' + link + '</a>';
                    }
                },
                {
                    'aTargets': 2,
                    'bSortable': true,
                    'mRender': function (link) {
                        return '<a href="' + link + '">' + link + '</a>';
                    }
                }
            ]
    });

1 个答案:

答案 0 :(得分:0)

喜欢这个吗?

$(selector).dataTable({
    "processing": true,
    "serverSide": true,
    "ajax": url,
    "autoWidth": false,
    "aoColumnDefs":[{
        'aTargets': 0,
        'bSortable': true
    }, {
        'aTargets': 1,
        'bSortable': true,
        'mRender': function (link) {
            return '<a href="' + link + '">' + link + '</a>';
        }
    }, {
        'aTargets': 2,
        'bSortable': true,
        'mRender': function (link) {
            return '<a href="' + link + '">' + link + '</a>';
        }
    }],
    fnServerParams: function(query_strings) {
        query_string.splice(0);

        /*
          query_strings is an Array of Objects like this
            [{name: 'query_string1', value: 'query_string1_value'},
             {name: 'query_string2', value: 'query_string2_value'},
             {name: 'query_string3', value: 'query_string3_value'}]

          As you can see, the 'name' and 'value' represents the query string's key/value pair.
          If you want to add another one you need to add another object:

          query_string.push({
            name: 'page',
            // To get the page number you are going to
            value: $(selector).dataTable().api().page.info().page
          });

        */

    }
});