【问题标题】:How to Sort Data Table like FogBugz Cases Table如何对 FogBugz 案例表等数据表进行排序
【发布时间】:2009-01-22 21:28:51
【问题描述】:

有人见过fogbugz 是如何对他们的表格进行排序的吗?当您单击对列进行排序时,它们实际上会将表格分成许多小表格,这些小表格包含每个类别的信息。

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

希望实现此功能。

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

任何帮助都会很棒!

这个还没想好。

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

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

【问题讨论】:

  • 截图会很有帮助。如果您有链接,请发布 - 否则真的很难知道您的意思。
  • 您还想在哪里使用什么应用程序重新创建这个?需要更多细节

标签: sorting fogbugz


【解决方案1】:

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

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

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

【讨论】:

  • 编写问题功能的人实际上回答了这个问题,这有多棒? +1
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    这是 FogBugz 的屏幕截图,点击优先级列后。

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

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


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

    【讨论】:

      【解决方案4】:

      我使用了来自 Kryogenix 的 Sortable Tables script,效果不错。

      【讨论】:

        【解决方案5】:

        不知道是否相关,但是我们在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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-02-07
          • 1970-01-01
          • 1970-01-01
          • 2020-01-23
          • 1970-01-01
          • 2012-06-07
          • 1970-01-01
          相关资源
          最近更新 更多