zoukankan      html  css  js  c++  java
  • DataTables ajax重新加载数据

    传数据给后台返回数据,最开始的办法是

    重新生成一个datatable对象,但是在每次点击刷新时都会有闪动的现象,而且代价很高。理想中应该仅仅更新数据。

    最后在文档中查到一个插件fnReloadAjax加入文件

    $.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )

    {

        if ( sNewSource !== undefined && s NewSource !== null ) {

            oSettings.sAjaxSource = sNewSource;

        }

        // Server-side processing should just call fnDraw

        if ( oSettings.oFeatures.bServerSide ) {

            this.fnDraw();

            return;

        }

        this.oApi._fnProcessingDisplay( oSettings, true );

        var that = this;

        var iStart = oSettings._iDisplayStart;

        var aData = [];

        this.oApi._fnServerParams( oSettings, aData );

        oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) {

            /* Clear the old information from the table */

            that.oApi._fnClearTable( oSettings );

            /* Got the data - add it to the table */

            var aData =  (oSettings.sAjaxDataProp !== "") ?

                that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;

            for ( var i=0 ; i<aData.length ; i++ )

            {

                that.oApi._fnAddData( oSettings, aData[i] );

            }

            oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();

            that.fnDraw();

            if ( bStandingRedraw === true )

            {

                oSettings._iDisplayStart = iStart;

                that.oApi._fnCalculateEnd( oSettings );

                that.fnDraw( false );

            }

            that.oApi._fnProcessingDisplay( oSettings, false );

            /* Callback user function - for event handlers etc */

            if ( typeof fnCallback == 'function' && fnCallback !== null )

            {

                fnCallback( oSettings );

            }

        }, oSettings );

    };

    使用方法

    oTable.fnReloadAjax('pages/getPlayerNewData.php);

    oTable.fnReloadAjax(); //使用默认

    http://yuklog.lofter.com/post/70cbd_8b6706

  • 相关阅读:
    洛谷 P4707 重返现世
    多项式总结&多项式板子
    线性常系数齐次递推
    洛谷 P2791 幼儿园篮球题
    CF Gym 102028G Shortest Paths on Random Forests
    洛谷 P4705 玩游戏
    [NOI2018]冒泡排序
    PKUSC2019 改题记录
    PKUSC2019 没约记
    Codeforces Round #557 题解【更完了】
  • 原文地址:https://www.cnblogs.com/hubing/p/4489791.html
Copyright © 2011-2022 走看看