感觉使用jqueryUi 进行拖拽排序比箭头移动排序要爽多了,实现了下跟大家分析下:
1 使用 jquery ui控件的 drag功能
2 实现拖拽,拖拉位置
3 循环读取当前位置的id
4 ajax到后台,依次找到位置的id 然后修改sequence
<script type="text/javascript">
var params={};
$(function() {
$( "#recommendBar" ).sortable({
revert: true
});
$( "#draggable" ).draggable({
connectToSortable: "#recommendBar",
helper: "clone",
revert: "invalid"
});
$( "#sore" ).click(function() {
$(".recomend_list .barMoving div").each(function(i){
var vals= $(this).attr("id");
var valu=i+1;
var param="L"+valu;
params[param]=vals+"";
});
$.post("<@ofbizUrl>recommendSore</@ofbizUrl>",params,ajaxFormCallback);
});
});
</script>
<ul id="recommendBar" class="recomend_list">
div class="barSetting" id="${product.getString("productId")?if_exists}"></div>
</ul>
public static String recommendSore(HttpServletRequest request, HttpServletResponse response) {
Delegator delegator = (Delegator) request.getAttribute("delegator");
List<GenericValue> leftBar=FastList.newInstance();
String partyId = ((GenericValue) request.getSession().getAttribute("userLogin")).getString("partyId");
String productStoreId=BusinessWorker.getProductStoreId(delegator, partyId);
try {
TransactionUtil.begin();
leftBar = delegator.findByAnd("YProductRecommend", UtilMisc.toMap("productStoreId", productStoreId),UtilMisc.toList("+sequence"));
if (leftBar.size() > 0) {
for (int i=0;i<leftBar.size();i++) {
int val=i+1;
String param = request.getParameter("L"+val);
GenericValue Gv=delegator.findByPrimaryKey("YProductRecommend", UtilMisc.toMap("productId", param));
Gv.put("sequence", val+"");
Gv.store();
}
}
TransactionUtil.commit();
} catch (GenericEntityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "success";
}