1

我从服务器获取 json 格式的数据,我使用下面的代码在页面上呈现它。但无法在列(即单元格)上设置属性“名称”。sName 是我应该用来为每个单元格设置“名称”属性的正确属性吗?
这是我的数据表代码。

$('#' + 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 回答