我有两张紧挨着的桌子。以下是模板的一个简短示例:
<table id="table1">
<tbody>
<tr>
<td>a1</td>
<td>a1</td>
</tr>
<tr>
<td>b1</td>
<td>b1</td>
</tr>
</tbody>
</table>
<table id="table2">
<tbody>
<tr>
<td>a2</td>
<td>a2</td>
</tr>
<tr>
<td>b2</td>
<td>b2/td>
</tr>
</tbody>
</table>
看起来是这样的:
|a1|a1|a2|a2|
|b1|b1|b2|b2|
我的目标是使用可排序的jquery-ui功能,通过同时拖放两个表的行来排序。换句话说-当用户单击例如从tabel1单元格然后整行
|a1|a1|a2|a2|
当鼠标向上时,应先拖动,然后再放下。我不需要在两个表之间拖放行—我需要在拖动时将两个表中的行视为一行—如果这些行在其表中具有相同的位置Y。
实际上,用例是我有网格,我需要在其中实现拖放行。用户可以冻结网格中的一些列-然后有两个表-一个用于冻结的列,一个用于未冻结的列-所以实际上有一行,但分为两个表。以下是网格的一个示例:https://www.igniteui.com/grid/column-fixing
没有一个好的方法来实现这一点。如果你有更多的项目,这也变得更加困难。基本上,您对一个表执行排序,然后当排序完成时,将相应的项移动到第二个表中的适当位置。
$(function() {
$("#table1 tbody").sortable({
handle: ".row-handle",
items: "> tr",
helper: function(e, item) {
var index = item.index();
item.data("right", $("#table2 tbody tr:eq(" + index + ")").clone());
item.data("orig-index", index);
$("#table2 tbody tr:eq(" + index + ")").fadeOut("fast");
return item;
},
update: function(e, ui) {
var row2 = ui.item.data("right");
var index = ui.item.index();
$("#table2 tbody tr").eq(ui.item.data("orig-index")).remove();
switch (true) {
case index == 0:
console.log("First", index);
$("#table2 tbody tr:eq(0)").before(row2);
break;
case index == $("#table2 tr").length:
console.log("Last", index);
$("#table2 tbody").append(row2);
break;
case index > 0 && index < $("#table2 tr").length:
console.log("Mid", index);
$("#table2 tbody tr").eq(index).before(row2);
}
}
});
});
.left {
float: left;
width: 50%;
}
.right {
float: right;
width: 50%;
}
html prettyprint-override"><link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<table id="table1" class="left ui-widget">
<thead class="ui-widget-header">
<tr>
<td style="width: 20px;"> </td>
<th>Company</th>
<th>Name</th>
</tr>
</thead>
<tbody class="ui-widget-content">
<tr>
<td style="width: 20px;"><span class="ui-icon ui-icon-grip-dotted-vertical row-handle"></span></td>
<td>Company 1</td>
<td>Name 1</td>
</tr>
<tr>
<td><span class="ui-icon ui-icon-grip-dotted-vertical row-handle"></span></td>
<td>Company 2</td>
<td>Name 2</td>
</tr>
<tr>
<td><span class="ui-icon ui-icon-grip-dotted-vertical row-handle"></span></td>
<td>Company 3</td>
<td>Name 3</td>
</tr>
</tbody>
</table>
<table id="table2" class="right ui-widget">
<thead class="ui-widget-header">
<tr>
<th>Title</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<tr>
<td>Title 1</td>
<td>Address 1</td>
</tr>
<tr>
<td>Title 2</td>
<td>Address 2</td>
</tr>
<tr>
<td>Title 3</td>
<td>Address 3</td>
</tr>
</tbody>
</table>
我的目标是通过拖放对tableview进行排序。我举了一个例子:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm 对于拖放,我通过Scene Builder添加了fxml 制造了控制器 但是在drag Drop,我无法得到我扔下物体的那排位置。我得到的只是手机信息<代码>文本[Text=“
我几乎没有元素。我可以拖放元素。。。但是,我的要求是我需要在放置后对元素进行排序(释放鼠标后,元素必须移动到目标位置)。请帮帮我。。。这是我使用的代码,
问题内容: 我想具有重新排列表中的行的功能(使用拖放对行进行排序)。 并且行排列的索引在模型中也应更改。 如何 使用Angular Directive 做类似的事情:http : //jsfiddle.net/tzYbU/1162/? 我正在生成表为: 问题答案: 我做的。请参阅下面的代码。 的HTML 指令(JS)
我有一个Arraylist,我想按两个属性对ArrayList进行排序1。按名称(字母顺序)2。按自定义键 更多解释-: '
我是javascript新手,我有一个问题暂时无法解决……我需要对表进行动态排序。(借用)代码为: 它适用于文本/数字值,但问题是表中的一列由复选框组成。这个想法是按照带有选中复选框的行在顶部的方式对表格进行排序(/底部,取决于升序/降序方向)。 我试图检查< code > x . innerhtml . checked = = true ,但是< code>x.innerHTML.checked
问题内容: 我使用python创建原型,并且为此使用了zip函数,但不确定如何在Java中执行此操作。基本上,我有两个列表(一个是名称,一个是数据),希望它们相对于彼此排序。我的程序仅处理列表(在这种情况下为数据),但是我将名称用作对正在处理的数据的引用,并且我想尝试以不同的顺序处理数据。这是结构的一个示例(实际上我的数据没有提供给我存储,但是我会对其进行基本排序或反向排序,没什么花哨的)。 所以