2

私はjqueryデータテーブルを使用してビューを取得しました.1つのボタンで、別のJsonリストまたはコントローラーから受け取った配列を使用して、テーブルからデータを即座に再作成したい.

これは私の見解のコードです:

$.ajax({
    type: "GET",
    url: "EmpTruck/getJson/",
    data: { search: station },
    dataType: "Json",
    error: function (xhr, status, error) {
        alert(error);
    },
    success: function (json) {

        alert(json.aaData);
        var table = $(".dynamicTableEmployee").dataTable();
        table.fnClearTable();
        table.LoadDataRow(json);
    }
});

これは controller からのコードです:

        [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult getJson()
{

    List<Employees> list = new List<Employees>();
    list = db.Employees.Where(c => c.Station.Equals("ATL")).ToList();


    return this.Json(list, JsonRequestBehavior.AllowGet);

}

このコードはデータテーブルのみをクリアします。Json配列に何かがあるかどうかを確認するためにブレークポイントを設定しました。

json 配列からデータテーブルを作成する方法がわかりません。シリアル化する必要がありますか? json はデータテーブルと同じサイズである必要がありますか?

ありがとう

4

3 に答える 3

0

データをリロードするだけの場合は、fnReloadAjax()APIプラグインを使用できます:http://datatables.net/plug-ins#api_fnReloadAjax

列の変更などのようにテーブルを完全に変更したい場合は、古いものを削除して新しいものに置き換えます。コードをスクリプトに貼り付けるだけで(テーブルを初期化する前に!)、データをリロードするときはいつでも、テーブルオブジェクトでfnReloadAjax()を呼び出します。

この例が役立つ場合があります:http://datatables.net/examples/example_plugin_api.html


http://www.datatables.net/forums/discussion/52/load-new-data-via-ajax/p1から)

于 2013-01-21T04:54:00.380 に答える
0

$(function () {
         Loadtestview();
    function Loadtestview () {
        var divSecTable = $('#secdeal');
            oSecTable = divSecTable.dataTable({
                "processing": true,
                "serverSide": true,
                "aaSorting": [1, 'asc'],
                "info": true,//localtable.bInfo,
                "autoWidth": false,//localtable.AutoWidth,            
                "scrollY": 700,
                "scrollX": "150%",
                "scrollCollapse": true,
                'destroy': true,
                "pagingType": "full_numbers",
                'lengthChange': false,
                "searching": false,
                'sAjaxSource': '../ReportsMvc/GetSecuritizationDeal',
                "iDisplayLength": 100,
                "columns": [
{ "targets": 0,"data":"col1","title":"col1", "className": "center textNoWrap" },
{ "targets": 1,"data":"col2","title":"col2", "className": "center textNoWrap" },
{ "targets": 2,"data":"col3","title":"col3", "className": "center textNoWrap" },
{ "targets": 3,"data":"col4","title":"col4", "className": "center textNoWrap" },
                ],

                'fnServerData': function (sSource, aoData, fnCallback) {       
                      aoData.push({ "name": "rgid", "value": $("#ddlBatchdate").val() });
                    $.get(sSource, aoData, function (rsp) {
                        fnCallback(rsp);
                    });
                },
                "fnInitComplete": function () {
                    new $.fn.dataTable.FixedColumns(oSecTable, { leftColumns: 4 });       
                }
            });
    }
});

于 2015-12-04T22:26:52.857 に答える