使用.editable(..)数据表进行条件编辑

时间:2013-08-19 10:05:14

标签: datatables jquery-datatables jeditable

我是数据表的新手,我有这个问题困扰我一段时间。 例如,我正在尝试编辑第5列,但我想为部分行禁用它.. 可能吗?因为我似乎没有找到方法..

                        $('td:eq('5')', oTable.fnGetNodes()).editable('/'+appName+'/GetGenWidgetTableDataServlet', 
                            {
                              type : 'text',
                              tooltip: 'Click to Edit',
                              indicator: 'Saving...',
                              placeholder : '',

                        "callback": function( sValue, y ) {
                            var aPos = oTable.fnGetPosition( this );
                            oTable.fnUpdate( sValue, aPos[0], aPos[2],true,true );
                        },
                        "submitdata": function ( value, settings ) {
                        debugger
                        var iPos = oTable.fnGetPosition( this );
                        var colPos = iPos[2];
                        iPos = iPos[0];
                        if(iPos!=null)
                        {
                            var aData = oTable.fnGetData( iPos );
                            var vRowType = aData[0];
                            var iId = aData[2];
                            var moduleID = iId.split("$")[0];
                            var unitID = iId.split("$")[1];
                            var processID = iId.split("$")[2];
                            var riskID = iId.split("$")[3];
                            var controlID = iId.split("$")[4];
                        }
                            return {
                                "Token": idhref,
                                "moduleID" :moduleID,
                                "unitID": unitID,
                                "processID" :processID ,
                                "riskID": riskID,
                                "controlID": controlID,
                                "rowType":vRowType,
                                "Action": "saveRow",
                                "columnName": aoCols[colPos]["Id"]
                            };
                        },
                        "height": "25px",
                        "width": "50px"
                    }

1 个答案:

答案 0 :(得分:2)

我们使用datatables可编辑插件(https://code.google.com/p/jquery-datatables-editable/),它允许您设置sReadOnlyCellClass。我们根据行中的值在数据表fnRowCallBack函数中设置该类。

您可以在fnRowCallBack中设置“可编辑”类

oTable = $('#resultTable').dataTable( {
    ...
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
        if ( aData["something"] == "This row should be editable" )
        {
            nRow.className = "editable";
        }
    return nRow;
    }
    ...
});

并将您的选择器修改为

oTable.$('tr.editable td:eq(5)').editable( ...)