gpt4 book ai didi

java - Wicket DND - 带 table 的顶部/底部下拉式

转载 作者:行者123 更新时间:2023-12-01 04:31:46 25 4
gpt4 key购买 nike

使用 wicket-dnd,是否可以将 dropTop()/dropBottom() 与 HTML 表格一起使用?如果是这样,选择器应该是什么?

我通过 ListView 创建了一个 HTML 表格,并且使用 dropCentre("tr") 取得了成功,但这是唯一有效的放置选项。理想情况下,我想使用 dropTopAndBottom() 并查看表行之间的水平分隔线,该分隔线指示放置目标。

更新:这是相关代码,为简洁起见进行了简化。相关表格每行都有一个标签,并已添加到表单中。

    // Container class for Wicket DND
final WebMarkupContainer dataWrapper = new WebMarkupContainer("dataWrapper");
dataWrapper.add(new WebTheme());

final ListView<BinaryData> data = new ListView<BinaryData>("data", list) {

@Override
protected void populateItem(final ListItem<BinaryData> item) {
final BinaryData data = item.getModelObject();
item.add(new Label("label", data.getLabel()));
}

@Override
protected ListItem<BinaryData> newItem(final int index, final IModel<BinaryData> itemModel) {
final ListItem<BinaryData> item = super.newItem(index, itemModel);
item.setOutputMarkupId(true);
return item;
}
};

dataWrapper.add(data);
dataWrapper.add(new DragSource(Operation.MOVE) {

@Override
public void onAfterDrop(final AjaxRequestTarget target, final Transfer transfer) {
}
}.drag("tr"));

dataWrapper.add(new DropTarget(Operation.MOVE) {

@Override
public void onDrop(final AjaxRequestTarget ajaxTarget, final Transfer transfer, final Location location) {

}
}.dropTopAndBottom("tr"));

form.add(dataWrapper);

和标记:

<div wicket:id="dataWrapper">
<table>
<tbody>
<tr wicket:id="data">
<td wicket:id="label"></td>
</tr>
</tbody>
</table>
</div>

我正在使用 Wicket-DND 0.6.0 和 Wicket 6.6.0。当我使用此代码拖动行时,拖动指示器中显示红十字图标。

最佳答案

wicket-dnd 使用标准 CSS 选择器来确定放置位置。

以下是 wicket-dnd-examples 中修改后的 TableExample:

table.add(new DropTarget(Operation.MOVE)
{
@Override
public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location)
throws Reject
// something was dropped
{
}.dropTopAndBottom("tr");

关于java - Wicket DND - 带 table 的顶部/底部下拉式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17895808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com