2009-01-22 65 views
6

任何人都可以看到fogbugz如何对其表格进行排序?当你点击排序列时,他们实际上将表格分解成许多具有每种类别信息的小表格。如何对数据表进行排序,如FogBugz Cases表

想知道如果有人知道他们是如何做到这一点?

寻求实现此功能。

如果您通过案例页面查看并排序,您可以查看我的意思。

任何帮助将是真棒!

还没有想出这一个。

编辑︰ @Peter,我不想回发和重新创建一个表,每次单击标题标题进行排序。我也想知道他们是否是一个通用的解决方案。如果我点击头进行排序,通过javascript的方式,它将“一个”表分成许多,我想知道它们是否是任何通用解决方案,因为它只是更好地查看排序表的方法。

编辑:我需要一个javascript分拣机,但如果你的FogBugz的实施看降权,它会产生不同的结果...

+0

屏幕截图会有帮助。如果你有链接,请张贴它 - 否则很难知道你的意思。 – 2009-01-22 21:33:26

+0

你也喜欢重新使用什么应用程序?需要更多细节 – 2009-01-22 22:09:18

回答

8

是的,Rich得到了它(我把这个功能编码到FogBugz很久以前)。

如果您必须在客户端上执行此操作,您别无选择,只能对数据进行排序,遍历它,在表格行之后生成表格行,并且每次点击新的排序值时,都会创建一个新的适当的信息。

说实话,这将是一个非常酷的修改这个jQuery插件:http://tablesorter.com/docs/,你可以利用lot他们的工作。如果您打算投入时间并创建一个通用解决方案,那么最好让社区可以访问它。

1

不知道你所期望的答案做。对此的SQL查询将简单地对所选列进行排序,并且每次此值更改时,UI都会启动新表。

下面是点击优先列后FogBugz的截图。

http://img297.imageshack.us/img297/6974/76755363ee3.png

当然,开始的新表中没有对每列(标题,案例#)是有意义的。


编辑:如果我理解正确的话,你正在寻找一种方式如何做到这一点的浏览器,而无需加载新的一页。如果是这种情况,我会建议至少一些服务器端支持,它会以正确的顺序返回你的数据,并适当地为子表构造(在xml/json中/不论你使用什么)。您的JavaScript将使用此数据重新创建表格。我相信有更多web-ui经验的人会为您提供更好的答案。

2

如果不知道Fog Creek是如何实现这一点的,我会这样做的方式是输出一个表头,然后迭代整个列表,每当组值改变时输出一个页脚和一个新的头文件。

0

我不知道它是否相关,但我们将查询的结果存储在SQL中的临时表中,然后引用current-row-less-one来查看Category是否已更改,并指出此在resulset。

在某些情况下,我们“表示”这与含

<tr><td colspan=999>Category Heading</td></tr> 

,使得网页可以直接“注入”到这一点它是建立在表中的列。

SELECT Col1, Col2, ..., 
     [CATEGORY] = CASE WHEN T1.CategoryCol <> COALESCE(T2.CategoryCol, '') 
      THEN '<tr><td colspan=999>' + T1.CategoryCol + '</td></tr>' 
      ELSE '' 
      END 
FROM #MyTempTable AS T1 
    LEFT OUTER JOIN #MyTempTable AS T2 
     ON T2.ID = T1.ID - 1