2013-03-17 59 views
2

这个问题以前接近“太模糊”。由于我非常渴望答案,让我再试一次。水平(旋转)电网

我花了几个过去的日子里寻找并试图找到我要求一个更好的词一个horizontal grid的运气控制基于JavaScript的执行。为了帮助您理解我的意思,让我们从一个常规网格开始。假设我有一个包含历史数据的数据库表,用于发送我想要显示的某个自动部分。在常规网格(表)控制它看起来像这样:

Date | Part 1 | Part 2 | Part 3 | 
--------------------------------- 
3/15 | 5 | 6 | 7 | | 
3/16 | 4 | 3 | 1 | | 
3/17 | 2 | 4 | 5 | V 
3/18 | 5 | 1 | 8 | 

现在,假设我需要代表同一数据集水平增长。这个想法是规则网格的行和列是倒置的,网格不是从上到下而是从左到右填充。认为已被翻转在其一侧的规则网格:

 |3/15| 3/16| 3/17| 3/18| 
------------------------------- 
Part 1 | 5 | 4 | 2 | 5 | 
Part 2 | 6 | 3 | 4 | 1 | 
Part 3 | 7 | 1 | 5 | 8 | 

      ---> 

用一个小的数据集,我可以用HTML表格做到这一点,但问题是,该数据集可能非常大(动态),所以它会当网格向右滚动时,可以分页或自动上载附加记录。

正如我所提到的,做搜索并没有真正把任何东西。我愿意从头开始编写代码,但我开始之前,这将是很好得到也许现有的控制,我可以以这种方式

回答

3

我相信要你想要做的就是所谓的矩阵转置返工一些建议。在这一点,我们可以用数组做在JavaScript和underscore.js website

var autoParts =[ 
    ['Date', 'Part 1 ', 'Part 2', 'Part 3'], 
    ['3/15', 5, 6, 7], 
    ['3/16', 4, 3, 1], 
    ['3/17', 2, 4, 5], 
    ['3/18', 5, 1, 8] 
] 

var rotatedAutoParts = _.zip.apply(null, autoParts); 

rotatedAutoParts现在包含:

[ 
    ["Date", "3/15", "3/16", "3/17", "3/18"], 
    ["Part 1 ",5, 4, 2, 5], 
    ["Part 2",6, 3, 4, 1], 
    ["Part 3", 7, 1, 5, 8] 
] 

有了正确设置数据,你应该能够迅速重新填充你的HTML表格。

+0

感谢@fe_lix_但是创建数据集是没有问题的。我需要一个小部件,其行为类似网格的数据集(卷轴,进行分页等) – Bostone 2013-03-20 20:31:31

+0

一旦你的数据,你可以使用任何这两个插件的渲染阵列来填充:HTTP://angular-ui.github。 com/ng-grid /或http://trirand.com/blog/jqgrid/jqgrid.html – 2013-03-21 11:11:30

+0

我想我应该被打屁股,因为没有立即认出你的解决方案的优雅。它并没有完全解决在左边有可排序标题的“水平网格”的想法,但我可以看到如何在每次分页时填充常规网格和转置结果集。赏金颁发! – Bostone 2013-03-21 15:26:24