基于HTML中的值对行进行分组

时间:2013-04-10 09:23:36

标签: html jsp

我有一个jsp页面,下面是for循环:

<c:forEach var="myItem" items="${itemsList}">

<table border="0" class="table_class">

        <tr>

            <td colspan="1" valign="bottom">Item #${myItem.item_number}
            </td>

            <td colspan="2" align="left"><b>Item Name : ${myItem.item_name}</b> 
            </td>


        </tr>

        <tr>
            <td class="gridcolumnclass">${myItem.item_desc}
            </td>

        </tr>

</table>

</c:forEach>

很明显,对于每个项目,都会发布两行,第一行包含两列包含ITEM_NUMBER和ITEM_NAME,第二行包含ITEM_DESCRIPTION。

例如,我有以下项目集

1, banana, some_desc
2, banana, some_desc
3, apple, some_desc
4, banana, some_desc
5, banana, some_desc
6, apple, some_desc
7, apple, some_desc
8, banana, some_desc
9, apple, some_desc
10, apple, some_desc
11, banana, some_desc

如果上面的列表被传递到for循环,在显示器上会有两个香蕉,然后是一个苹果,然后是两个香蕉,然后是两个苹果,然后是一个香蕉,然后是两个苹果,最后是给定的香蕉订购。

但是,我怎么能把苹果和香蕉放在一起?

我的显示屏应首先显示所有香蕉,然后是苹果。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

我猜这些项目是一个对象(或数组)。 Javascript具有.sort()函数,可以使用函数。

function compare(a,b) {
    if (a.item_name < b.item_name)
        return -1;
    if (a.item_name > b.item_name)
        return 1;
    return 0;
}

myItem.sort(compare);

如果您想进一步采用这种方法并使比较功能动态化。 (所以你可以按另一个“字段”名称排序)this是一个好的开始;)

如果你不能用Javascript进行排序。 Here是基于Java的解决方案。它需要一些修改才能在你的情况下使用它。

希望这有帮助。