2012-04-10 92 views
0

背景:我有一個帶有53x列的jQuery Datatable。第一列是用戶名,不可編輯。接下來的52列代表一年中的幾周,每個列都需要可編輯。他們都包含完全相同的選項。爲Datatable列定義多個jQuery變量

問題:有沒有更好的方法來定義所有52周,而不必「複製&粘貼」列數據52次?

我的代碼:

$(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' 
         } ]     
    }); 

})

回答

2

使用循環然後在傳遞給數據表的配置對象的屬性aoColumns用它構建列陣列。

$(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

完美 - 完全正確 - 謝謝! – Laurence 2012-04-10 04:52:21