如何更改窗体中列表项的顺序
How to alter order of list items in a form?
我制作了一个Spring MVC应用程序,可以向用户显示项目列表 - 如何在JSP中更改这些项目的顺序,以便将新订单提交到服务器?
例如,用户将获得以下列表:
- 宠物猫
- 宠物狗
- 宠物鸟
该列表由以下形式组成:
<form:form action="/modifypetlist.do" method="POST" modelAttribute="petList">
<fieldset>
<div>
<ul id="sortable">
<c:forEach items="${petList.list}" varStatus="vs">
<li class="ui-state-default">
<form:label path="list[${vs.index}].pet">Pet</form:label>
<form:input path="list[${vs.index}].pet" />
</li>
</c:forEach>
</ul>
</div>
<input type="submit" value="send">
</fieldset>
</form:form>
我包含了一些Javascript,使用户能够拖放列表中的行,例如将Dog行移动到Cat行上方。
如何将其传达给服务器?(如何从表单字段重建 petList 模型?提交表单后,我目前可以在服务器中读取列表,但列表项按原始顺序排列,即使我更改了表单中的名称(例如。猫-->老鼠)
那是因为它们自然地按其主键(这是一个索引)排序,所以通常是行的 id。
尝试在表格中添加一个"排名"字段,一旦数据被排序,您将更新该字段,并按排名对结果进行排序。
您需要将订单信息持久化在持久化层中。通过这样做,每次修改顺序时都需要触发一个调用(例如javascript ajax调用)。此调用应向应用程序服务器发送请求,应用程序服务器将调用正确的服务来更新该列表的持久性层。
然后,您还需要调整您的持久性层,以使用您之前在显示页面时保留的"排名"信息对列表进行排序。
我想这是最有效的方法。
祝你好运!
相关文章:
- 如何随机显示列表项的顺序
- 对Soundcloud自定义播放器播放列表的顺序进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 如何根据 js 中每个单词的第 n 个字母按字母顺序排列列表
- 按调用顺序返回由Ajax/HTTP生成的数据列表
- 插入按字母顺序、javascript或jquery排序的新列表
- Mvc4将Jquery可排序列表项的顺序保持到控制器
- 按字母顺序排列列表
- 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序
- 如何跟踪有序列表中的顺序,该列表具有一个循环列表项,提供不同的参数
- 链接的自定义顺序列表
- 从下拉列表中的数组中选取某个项目,然后将其显示为第一项并按字母顺序显示
- 当列表长度未知时按顺序调用 http.get
- 按数字顺序排列列表
- Javascript Regex - word 必须与列表中的任何单词匹配,以任何顺序,带有单词边界
- 如何更改窗体中列表项的顺序
- 保留列表中移动元素的顺序
- 日期的顺序列表如何从对象获取
- 使用角度 js 按顺序列表排序
- 通过JavaScript读取拖放顺序列表