2013-08-19 2 views
0

Je suis nouveau dans les datatables, et j'ai ce problème qui me dérange pendant un moment. par exemple, j'essaie d'éditer la 5ème colonne, mais je veux la désactiver pour une partie des lignes .. est-ce possible? parce que je ne semble pas trouver le chemin ..Modification de conditions à l'aide des données .editable (..)

     $('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" 
        } 

Répondre

2

Nous utilisons le datatables plug-in modifiable (https://code.google.com/p/jquery-datatables-editable/) et il vous permet de définir un sReadOnlyCellClass. Nous avons défini cette classe dans la fonction fnRowCallBack datatable en fonction des valeurs de la ligne.

Vous pouvez définir une classe "modifiable" dans votre fnRowCallBack

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

et modifier votre sélecteur

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