1

私は DataTable https://www.datatables.net/から始めました。私は最後のDataTableを使用しています.Ajaxを介してJSON文字列からDataTableにデータをロードできます.そして今、行をクリックするとデータを取得したい.http://debug.datatables.net/idiholでDataTableデバッガーを見る 、これは私のページですテスト.aspx

<table id="div_table" class="display cell-border compact" width="100%">
            <thead>
                <tr>
                    <td>No</td>
                    <td>Name</td>
                    <td>Des</td>
                    <td>LID</td>
                    <td>AID</td>
                    <td>DATE</td>
                    <td>BY</td>
                </tr>
            </thead>
        </table>

そして、これは私のスクリプトです

var table = $('#div_table').DataTable({
                "processing": false,
                "serverSide": false,
                "ajax": {
                    "url": "../BUS/WebService.asmx/LIST_LOCATION",
                    dataSrc: function (json) {
                        return $.parseJSON(json.d);
                    },
                    "dataType": "json",
                    "contentType": "application/json; charset=utf-8",
                    "type": "POST"
                },
                "aoColumns": [  //// 7 columns as Datatable
                    { "mData": null, "aTargets": [0], "sType": "integer", "bSearchable": false, "orderable": false },
                    { "mData": "LOCATION_NAME", "aTargets": [1], "sType": "string" },
                    { "mData": "LOCATION_DES", "aTargets": [2], "sType": "string" },
                    { "mData": "LOCATION_ID", "aTargets": [3], "sType": "string", "bVisible": false, "bSearchable": false, "orderable": false },
                    { "mData": "AREA_ID", "aTargets": [4], "sType": "string", "bVisible": false, "bSearchable": false, "orderable": false },
                    { "mData": "EDIT_DATE", "aTargets": [5], "sType": "date", "bVisible": false, "bSearchable": false, "orderable": false },
                    { "mData": "EDIT_BY", "aTargets": [6], "sType": "string", "bVisible": false, "bSearchable": false, "orderable": false }
                ],
                "order": [[1, 'asc']]
            }); 
            //table.columns([3, 4, 5, 6]).visible(false);           //// disable column 4,5,6,7
            //// create index column 1
            table.on('order.dt search.dt', function () {
                table.column(0, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) {
                    cell.innerHTML = i + 1;
                });
            }).draw();
 $('#div_table tbody').on('click', 'tr', function () {    // get full data or some columns at row selected
                $(this).toggleClass('selected');
                var data_ = table.row($(this)).data();
                alert(data_[3] + " and " + data_[4]);
                /// alert(table.row($(this)).data()); error it show info "object object"
            });

実行した後、「未定義および未定義」というエラーが表示されます。問題について教えてください。アドバイスをお願いします。ありがとうございます。

4

1 に答える 1

4

問題は、JSON データは のようなプロパティを持つオブジェクトの配列ですが、JSON データが配列の配列であるかのようLOCATION_NAMEに、インデックス ( 、)LOCATION_DESを使用してデータを取得しようとしていることです。data_[3]data_[3]

row().data()マニュアルページから:

関数の戻り値: 行のデータ ソースのデータ ソース オブジェクト。DOM ソース データを使用する場合、これは配列になります。それ以外の場合は、テーブルにデータを入力するために使用される配列 / オブジェクト / インスタンスになります。

取得しようとしているデータは、data_['LOCATION_ID']およびで利用できますdata_['AREA_ID']

于 2015-05-29T12:03:48.393 に答える