2012-04-10 20 views
0

Hintergrund: Ich habe ein jQuery-Datatable mit 53x-Spalten. Die erste Spalte ist der Benutzername und kann nicht bearbeitet werden. Die nächsten 52 Spalten stellen Wochen des Jahres dar, die jeweils editierbar sein müssen. Sie alle enthalten genau die gleichen Optionen.mehrere jQuery-Variablen für Datatable-Spalten definieren

Problem: Gibt es eine bessere Möglichkeit, alle 52 Wochen zu definieren, ohne die Spalte 52 Mal kopieren zu müssen? & einfügen?

My Code:

$(document).ready(function() { 
    $('#example').dataTable().makeEditable({ 
        sUpdateURL: function(value, settings) 
          { 
            return(value); 
          }, 
        "aoColumns": [ 
         null, 
         { 
         tooltip: 'Click to change leave', 
         loadtext: 'loading...', 
         type: 'select', 
         onblur: 'cancel', 
         submit: 'Ok', 
         data: "{'':'Please select...', 'A':'A','B':'B','C':'C'}", 
         loadtype: 'GET' 
         }, 
         { 
         tooltip: 'Click to change leave', 
         loadtext: 'loading...', 
         type: 'select', 
         onblur: 'cancel', 
         submit: 'Ok', 
         data: "{'':'Please select...', 'A':'A','B':'B','C':'C'}", 
         loadtype: 'GET' 
         }, 

       {REPEAT 49 more times} 

         { 
         tooltip: 'Click to change leave', 
         loadtext: 'loading...', 
         type: 'select', 
         onblur: 'cancel', 
         submit: 'Ok', 
         data: "{'':'Please select...', 'A':'A','B':'B','C':'C'}", 
         loadtype: 'GET' 
         } ]     
    }); 

})

Antwort

2

Baue die Spalten-Array unter Verwendung einer Schleife dann verwenden, in dem aoColumns Eigenschaft des Objekts Konfiguration zu Datentabellen übergeben.

$(document).ready(function() { 

     // columns array 
     var aoColumns = []; 
     aoColumns.push(null); 

     for(var i=0;i<52; i++) { 
     var column = { 
       tooltip: 'Click to change leave', 
       loadtext: 'loading...', 
       type: 'select', 
       onblur: 'cancel', 
       submit: 'Ok', 
       data: "{'':'Please select...', 'A':'A','B':'B','C':'C'}", 
       loadtype: 'GET' 
       }; 
       aoColumns.push(column); 
     } 

     $('#example').dataTable().makeEditable({ 
       sUpdateURL: function(value, settings) 
       { 
        return(value); 
       }, 
       "aoColumns": aoColumns 
     }); 
+0

perfekt - funktioniert genau - danke! – Laurence

Verwandte Themen