在编辑复选框时使用jQuery可编辑DataTable中的自定义字段

时间:2013-06-21 14:23:02

标签: javascript jquery datatables

我有一个表(在asp.net中生成)与伟大的DataTable jQuery插件一起显示。 我的表有一些可编辑的字段(我使用jQuery Datatables editable),我的一些表中已经有一些自定义字段。

这是一个只有3°列可编辑的表格,可以发送两个额外的参数(我的表格的第3列和第1列):“cell”和“trustedid”。这非常有效:

$('#ctl00_MainContent_tradGrid').dataTable({
    bJQueryUI: true,
    "sPaginationType": "full_numbers",
    "bSortClasses": false
    }).makeEditable({
        sUpdateURL: "/updateData.aspx<% Response.Write(parameters); %>",
        fnOnEditing: function (input) {
            cell = input.parents("tr")
                    .children("td:nth-child(3)")
                    .text();
            trustedid = input.parents("tr")
                    .children("td:nth-child(1)")
                    .text();
            return true
        },
        oUpdateParameters: {
            cell: function () { return cell; },
            trustedid: function () { return trustedid; }
        },
        oEditableSettings: { event: 'click' }
    });

我还有另一个带有最后一个可编辑列复选框的表,也可以正常工作,这是代码:

$('#ctl00_MainContent_tradGrid').dataTable({
    bJQueryUI: true,
    "sPaginationType": "full_numbers",
    "bSortClasses": false
}).makeEditable({
    sUpdateURL: "/updateChecked.aspx",
    aoColumns: [
        {}, {}, {}, {
            type: 'checkbox',
            submit: 'Ok',
            cancel: 'Cancel',
            checkbox: { trueValue: 'Yes', falseValue: 'No' }
        }
    ]
});

现在我需要在第二个例子中使用一个自定义参数,但不能这样做!这是我的尝试:

$('#ctl00_MainContent_tradGrid').dataTable({
    bJQueryUI: true,
    "sPaginationType": "full_numbers",
    "bSortClasses": false
}).makeEditable({
    sUpdateURL: "/updateChecked.aspx",
    fnOnEditing: function (input) {
        trustedid = input.parents("tr")
                .children("td:nth-child(1)")
                .text();
        return true
    },
    oUpdateParameters: {
        trustedid: function () { return trustedid; }
    },
    aoColumns: [
        {}, {}, {}, {
            type: 'checkbox',
            submit: 'Ok',
            cancel: 'Cancel',
            checkbox: { trueValue: 'Yes', falseValue: 'No' }
        }
    ]
});

但是收到错误:Uncaught ReferenceError: trustedid is not defined

我该怎么做?

1 个答案:

答案 0 :(得分:0)

fnOnEditing仅在text,select和textarea上调用: jquery.dataTables.editable.js中第209行的 if(settings.type == "text" || settings.type == "select" || settings.type == "textarea") 。我使用它与一些自动完成字段,它工作。您可以在该列表中添加复选框,但是您可能还需要其他一些更改,因为复选框上的.val()不会返回正确的值。