2014-06-11 15 views
0

我有我的viewmodel.js中定義的項目列表。這個項目列表是數據綁定到一個有3列的表格。項目列表按字母順序排序,顯示順序是從右到左如:knockout.js,jquery:如何排序出現在3列UI上的項目列表

AA AB AC 
BA BB BC 
CA 

,但我希望能有他們按字母順序排序並顯示自上而下類似:

AA BA BC 
AB BB CA 
AC 

當前的排序我使用表達式爲:

items.sort(function (l, r) { return l.Name() > r.Name() ? 1 : -1 }); 

我計算用下面的函數的行:

var calculateRows = function() { 
     var result = [], row, colLength = parseInt(columnLength(), 10); 
     for (var i = 0, j = options().Options().length; i < j; i++) { 
      if (i % colLength === 0) { 
       if (row) { 
        result.push(row); 
       } 
       row = []; 
      } 
       row.push(options().Options()[k]); 


     } 

     //push the final row 
     if (row) { 
      result.push(row); 
     } 
     return result; 
    }; 

和HTML:

<table class="footable table-striped" data-bind="foreach: rows()"> 
       <tr style="width: 33%" data-bind="foreach: $data"> 
       <td data-bind="value : Name"> </td> 
       </tr> 
      </table> 
+0

我想我們需要你的Html標記 –

回答

0

可以使用轉置方法類似this one事後修改陣列:

Array.prototype.transpose = function() { 
    var array = this; 
    return array[0].map(function (col, i) { 
     return array.map(function (row) { 
      return row[i]; 
     }); 
    }); 
} 

測試jsFiddle here

相關問題