2012-04-10 100 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