6

有人见过fogbugz如何对他们的表进行排序吗?当您单击对列进行排序时,它们实际上将表分解为许多具有每种信息类别的小表。

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

希望实现此功能。

如果您查看案例页面并进行排序,您就会明白我的意思。

任何帮助都是极好的!

这个还没想通。

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

编辑:我确实需要一个 javascript 排序器,但如果你低头看fogbugz 的实现,它会产生不同的结果......

4

5 回答 5

8

是的,Rich 明白了(我很久以前就把这个功能编码到 FogBugz 中了)。

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

老实说,这将是对这个 jQuery 插件的一个非常酷的修改:http: //tablesorter.com/docs/,您将能够利用他们的大量工作。如果您打算投入时间并创建一个通用解决方案,不妨让社区可以访问它。

于 2009-02-12T21:00:10.010 回答
2

在不知道 Fog Creek 是如何实现这一点的情况下,我的做法是输出一个表头,然后遍历列表,每次组值更改时输出一个页脚和一个新的表头。

于 2009-02-10T18:24:40.747 回答
1

不知道你期望什么答案。对此的 SQL 查询将简单地对选定列使用排序,并且每次该值更改时 UI 都会启动新表。

这是 FogBugz 的屏幕截图,点击 Priority 列后进行了排序。

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

当然,开始新表对每一列(标题、案例#)都没有意义。


编辑:如果我理解正确,您正在寻找一种如何在浏览器中执行此操作而不加载新页面的方法。如果是这种情况,我建议至少提供一些服务器端支持,这会以正确的顺序返回您的数据,并为子表正确结构化(在 xml/json/无论您使用什么)。您的 javascript 将使用此数据重新创建表。我相信其他有更多 web-ui 经验的人会为您提供更好的答案。

于 2009-01-22T22:12:24.093 回答
0

我使用了来自 Kryogenix的Sortable Tables 脚本,结果很好。

于 2009-02-03T22:49:38.083 回答
0

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

在某些情况下,我们用包含

<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
于 2009-02-13T11:22:00.017 回答