1

サーバーからjson形式のデータを取得し、以下のコードを使用してページにレンダリングしています。ただし、列、つまりセルに属性「名前」を設定できません。sName は、すべてのセルの「名前」属性を設定するために使用する必要がある適切なプロパティですか。
これが私のDatablesコードです。

$('#' + self.dom.tableID).dataTable({
            "asStripeClasses": [self.ui.rowClass],
            "bPaginate": true,
            "bLengthChange": false,
            "bFilter": true,
            "iDisplayLength": 15,
            "bSort": true,
            "bInfo": false,
            "bAutoWidth": true,
            "sDom": "tip",
            "aoColumns": [
                { "mDataProp": "name", "sClass": self.ui.nameCellClass, "sWidth": "35%", "sTitle": "Name" },
                { "mDataProp": "email", "sTitle": "Email"},
                { "mDataProp": "phone", "sTitle": "Phone"},
                { "mDataProp": "organizationName", "sTitle": "Organization"},
                { "mDataProp": "organizationRenewDate", "sTitle": "Expires on", "sWidth": "100px", "sType": "date"}

            ],
            "oLanguage": {
                "sZeroRecords": "No matching members found."
            }
        });

ちなみに、データをサーバー側のコードに送り返すには、各セルに「名前」属性が必要です。

4

1 に答える 1

0

入力を作成しようとしているように見えるので、フォームを投稿すると、データがサーバーに送り返されますか?

この場合、fnRender(古い方法) またはmRender(新しい方法) を使用して入力要素をセルに書き込む必要があります。次のようなもので、正しい軌道に乗るはずです。

{
    mDataProp: "name",
    sTitle: "Name",
    mRender: function(data, type, full) {
        switch(type){
            case 'display':
                return '<input type="text" name="name[]" value="' + data + '" />';
            default:
                return data;
        }
    }
}

編集

あなたのコメントに基づいて、次のようなものがもっと必要だと思います:

fnRowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
    //replace 1 with whichever cell you need
    $('td:nth-child(1)', nRow).attr('name', "WhateverNameYouWant");
}
于 2012-10-31T15:18:46.887 に答える