HTML拖放式可排序表
时间:2020-03-05 18:58:37 来源:igfitidea点击:
是否曾经想过有一个HTML拖放式可排序表,可以在其中对行和列进行排序?我知道这是我会死的。周围有很多可排序的列表,但是似乎找不到可排序的表。
我知道我们可以非常接近script.aculo.us提供的工具,但是我遇到了一些跨浏览器的问题。
解决方案
回答
排序表怎么样?这似乎很好地满足了要求。
加载排序表Javascript文件非常容易,然后,对于要使其可排序的每个表,将class =" sortable"应用于<table>标记。
它会立即了解如何对大多数类型的数据进行排序,但是如果没有,我们可以添加一个自定义的排序键来告诉它如何进行排序。该文档很好地解释了这一切。
回答
我建议在jQuery中使用Sortables。我们可以在列表项或者几乎所有内容(包括表格)上使用它。
jQuery非常适合跨浏览器使用,我一直建议这样做。
回答
如果我们不介意Java,则有一个非常方便的GWT库,称为GWT-DND,请查看在线演示以了解它的功能。
回答
我过去曾经使用过dhtmlxGrid。除其他功能外,它还支持拖放行/列,客户端排序(字符串,整数,日期,自定义)和多浏览器支持。
对评论的回应:
不,没有发现任何更好的东西,只是从该项目继续进行。 :-)
回答
大多数框架(Yui,MooTools,jQuery,Prototype / Scriptaculous等)都具有可排序的列表功能。对每一项进行一点研究,然后选择最适合需求。
回答
我使用了jQuery UI的sortable插件,效果很好。标记与此类似:
<table id="myTable"> <thead> <tr><th>ID</th><th>Name</th><th>Details</th></tr> </thead> <tbody class="sort"> <tr id="1"><td>1</td><td>Name1</td><td>Details1</td></tr> <tr id="2"><td>2</td><td>Name1</td><td>Details2</td></tr> <tr id="3"><td>3</td><td>Name1</td><td>Details3</td></tr> <tr id="4"><td>4</td><td>Name1</td><td>Details4</td></tr> </tbody> </table>
然后在javascript中
$('.sort').sortable({ cursor: 'move', axis: 'y', update: function(e, ui) { href = '/myReorderFunctionURL/'; $(this).sortable("refresh"); sorted = $(this).sortable("serialize", 'id'); $.ajax({ type: 'POST', url: href, data: sorted, success: function(msg) { //do something with the sorted data } }); } });
这会将项目ID的序列化版本发布到给定的URL。然后,此功能(在我的情况下为PHP)更新数据库中商品的订单。
回答
David Heggie的回答对我最有用。可以更简洁一些:
var sort = function(event, ui) { var url = "/myReorderFunctionURL/" + $(this).sortable('serialize'); $.post(url, null,null,"script"); // sortable("refresh") is automatic } $(".sort").sortable({ cursor: 'move', axis: 'y', stop: sort });
为我工作,具有相同的标记。