1

私は次のjQuerydataTableを持っています:

$("#my-datatable").dataTable( {
    "bProcessing" : true,
    "bPaginate": false,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": false,
    "bInfo": false,
    "bAutoWidth": false,
    "sAjaxSource" : "/myServer/getAllWidgets",
    "sAjaxDataProp" : "",
    "bDestroy" : true,
    "fnServerData" : function(sSource, aoData, fnCallback) {
        aoData.push({
            "name" : "widgetName",
            "value" : wName
        });

        request = $.ajax({
            "dataType" : "json",
            "type" : "GET",
            "url" : sSource,
            "data" : aoData,
            "success" : fnCallback
        });
    },

    "aoColumns" : [
        {
            "mDataProp" : "widgetType"
        },
        {
            "mDataProp" : "widgetValue"
        },
        {
            "mDataProp" : "widgetFactor"
        }
    ]
});

これにより、Webサーバーが正常にヒットし、UI/myServer/getAllWidgetsに3列のdataTable(列ヘッダーはTypeValueFactor)が入力されます。ここまでは順調ですね。

問題は、widgetsこのdataTableをサポートするMySQLテーブルが頻繁に変更されることです。ユーザーがボタンをクリックすると、dataTableが更新されるように、UIにボタンを追加したいと思います。つまり、データテーブルが/myServer/getAllWidgets再度実行され、正しいレコード/値が表示されます。ユーザー。

私は過去1日間それを機能させようとしましたが、私が試みていることはすべて失敗します。個人的には、この「更新」機能をどのように取得するかは気にせず、ソリューションにまったく関係がないかどうかも気にしませんfnReloadAjax(これが私が仕事に取り掛かろうとしていることです)。私はただうまくいくものが必要です:

<div id="refresh-button-div">
    <input type="button" id="refreshButton" onclick="refreshData"/>
</div>

// In JS
$("#refreshButton").click(function() {
    // ???
});

前もって感謝します。

4

2 に答える 2

2

関数を使用しfnDrawてテーブルを再描画できます。これを試して:

var $dataTable = $("#my-datatable").dataTable({ /* setup */ });

$("#refreshButton").click(function() {
    $dataTable.fnDraw();
});

ドキュメントfnDrawのエントリを読んでください。

于 2012-12-06T14:48:21.700 に答える
1

を使用してfnReloadAjax();、その ajax ソースからテーブル データをリロードします

$("#refreshButton").click(function() {
    oTable.fnReloadAjax();
});

ただ変える

$("#my-datatable").dataTable( {...

の中へ

oTable = $("#my-datatable").dataTable( {...//make oTable a global var in your js

この datatables プラグイン ソースをここfnReloadAjaxから取得し、いくつかの js ファイルにドロップして、ページに含めることができます...

于 2012-12-06T15:36:36.760 に答える