jquery datatable 通过oSetting更改sAjaxsource,如何重新获取数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery datatable 通过oSetting更改sAjaxsource,如何重新获取数据相关的知识,希望对你有一定的参考价值。

var datatables;

$(document).ready(function()

datatables = $('#domain_ip_table').dataTable(


'bPaginate': true,
"bProcessing": true,
'bLengthChange': true,
"bFilter": true, //过滤功能
"bSort": true, //排序功能
//"bJQueryUI": true, //页面风格使用jQuery.
"bAutoWidth": true,
'sPaginationType': 'full_numbers',
"sAjaxSource": '/ajax/get/domain/ip/?domain=',
"oLanguage":
"sProcessing": "正在加载数据...",
'sSearch': '数据筛选:',
"sLengthMenu": "每页显示 _MENU_ 项记录",
"sZeroRecords": "没有符合项件的数据...",
"sInfo": "当前数据为从第 _START_ 到第 _END_ 项数据;总共有 _TOTAL_ 项记录",
"sInfoEmpty": "显示 0 至 0 共 0 项",
"oPaginate":
"sFirst":"第一页",
"sPrevious": "上一页",
"sNext": "下一页",
"sLast": "最后一页"
,
"sInfoFiltered": "(_MAX_)"
,
"aoColumns": [
"mData": "ip" ,
"mData": "city" ,
"mData": "detail" ,
],
"bDestroy": true
);
)

function searchresult()
var domain = $("#domain").val();
var trueurl = '/ajax/get/domain/ip/?domain='+domain;
var oSettings = datatables.fnSettings();
// alert(oSettings.sAjaxSource);
oSettings.sAjaxSource = trueurl;
// alert(oSettings.sAjaxSource);
// datatables.fnClearTable(false);
// datatables.fnDestroy();
// datatables.fnDraw(oSettings);
datatables.fnGetData();


我想通过一个button触发searchresult(),在sAjaxsource后面体内家一个参数,然后重新请求。
但是添加参数,并且更改了,重新请求时,仍然没有参数
急用!!!!!!!!!!!使用的是python,django框架

参考技术A 首先 datatable 需要构建 datacolumn

datatable dt=new datatable();
dt.columns.add(new datacolumn("列名"))

添加数据方法()

datarow dr=dt.newRows();

dr["xxx"]=xxx;
...

dt.Rows.Add(dr);

参考技术B 可以使用refreshDataTable方法,不要用fnGetData,你试一下

jquery.dataTable和jquery.DataTable初始化

两者均能对dataTable进行初始化,DataTable() 没有.fnDraw(false)函数,dataTable()没有.row(tr)函数。

function fnClickReload() {
    if (typeof (tblList) != "undefined") {
        tblList.fnDraw(false);
        editRow();
    }
}

 

如果dataTable()要使用.row(tr)函数,使用.api()

var tr = $(this).closest(‘tr‘);
var row = tblList.api().row(tr);

 

例如:

var tblList;
function getList() {

    if (typeof (tblList) != "undefined") {
        tblList.fnClearTable(false);
        tblList.fnDestroy();
    }

    tblList = $("#tblList").dataTable({
columns: [
            {
                orderable: false,
                defaultContent: "",
                className: ‘details-control‘,
                data: ‘MessageId‘
            }],
        fnCreatedRow: function (nRow, aData, iDataIndex) {
            $(‘td:eq(0)‘, nRow).html("<b>+</b>");
        }
    });

    editRow();
}

function editRow() {
    $(‘#tblList tbody‘).on(‘click‘, ‘td.details-control‘, function () {
        var tr = $(this).closest(‘tr‘);
        var row = tblList.api().row(tr);

        if (row.child.isShown()) {
            // This row is already open - close it
            row.child.hide();
            tr.removeClass(‘shown‘);
            tr.children("td").eq(0).html("<b>+</b>");
        }
        else {
            // Open this row
            row.child(format(row.data())).show();
            tr.addClass(‘shown‘);
            tr.children("td").eq(0).html("<b>-</b>");
        }
    });
}

function format(row) {
    return "<div style="padding-left:50px;"><b>标题:</b>" + row.Subject +" <b>内容:</b>"+ row.Body+"</div>";
}
<table class="table table-striped table-bordered table-hover " id="tblList">
                        <thead>
                            <tr>
                                <th></th>
                                <th>发送机构</th>
                                <th>提醒类别</th>
                                <th>提醒时间</th>
                                <th>提醒范围</th>
                                <th>提醒机构</th>
                                @*<th>提醒标题</th>
                                <th>提醒内容</th>*@
                                <th>状态</th>
                                <th>创建者</th>
                            </tr>
                        </thead>
                        <tfoot>
                            <tr>
                                <th></th>
                                <th>发送机构</th>
                                <th>提醒类别</th>
                                <th>提醒时间</th>
                                <th>提醒范围</th>
                                <th>提醒机构</th>
                                @*<th>提醒标题</th>
                                <th>提醒内容</th>*@
                                <th>状态</th>
                                <th>创建者</th>
                            </tr>
                        </tfoot>
                    </table>

 

以上是关于jquery datatable 通过oSetting更改sAjaxsource,如何重新获取数据的主要内容,如果未能解决你的问题,请参考以下文章

通过单击 JQuery DataTable 打开引导模式

jQuery Datatable,通过 UI 调整 col 宽度

jquery datatable 通过oSetting更改sAjaxsource,如何重新获取数据

如何通过 Ajax 在 jQuery DataTables 中显示 JSON 数据?

无法通过服务器端处理显示 jQuery Datatable 的数据

单击按钮时,如何触发 jquery datatables fnServerData 通过 AJAX 更新表?