2

AJAX経由でデータを取得するためにサーバー側モードで使用しているデータテーブルがあります。表面的にはすべてが正しいように見えますが、ページをロードすると、データが表示される代わりに「一致するレコードが見つかりません」と表示されます。特徴的なのは、「2 件中 1 ~ 2 のレコードを表示しています」というレコードを表示していることです。

テーブル HTML と JS は次のとおりです。

<div class="container">
        <script type="text/javascript">
$(document).ready(function() {
    $("#freebieslist").dataTable({
        "bServerSide": true,
        "sAjaxSource": "/config/getadvertisers",
        "bPaginate": true,
        "bProcessing": true,
        "bFilter" : true,
        "sPaginationType" : "bootstrap",
        "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>"
    });

    $.extend( $.fn.dataTableExt.oStdClasses, {
        "sWrapper": "dataTables_wrapper form-inline"
    } );
});

</script>

<div class="row"><h1 class="pull-left">Advertisers</h1><div class="pull-right" style="margin-top:15px;"><a href="/config/addadvertiser" class="btn btn-primary">Add New</a>&nbsp;&nbsp;&nbsp;<a href="/config/delete" class="btn btn-danger">Delete</a></div>    </div>
<div class="row">
<div class="span12">
    <table id="freebieslist" class="table table-bordered table-striped table-hover">
        <thead>
            <tr>
                <th class="span1">&nbsp;</th><th>Advertiser</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
</div>
</div>        </div>

ロードされる JSON は次のとおりです。

{
    "sEcho": "1",
    "iTotalRecords": "2",
    "iTotalDisplayRecords": "2",
    "aaData": [
        [
            "2",
            "Test2"
        ],
        [
            "1",
            "Tester"
        ]
    ]
}

返された行が実際に表示されるようにこれを修正するにはどうすればよいですか?

4

1 に答える 1

1

Chrome で datatables デバッガーを使用して問題を解決しました。AJAX の結果が戻ってくることを確認したところ (データテーブルが渡していたパラメーターの取得に基づいて)、null の結果セットが取得されていることがわかりました。サーバー側のコードをすばやく変更すると、正常に動作するようになりました。

于 2013-02-07T06:09:27.553 に答える