1
У меня есть следующий виджет, который использует GXT HtmlLayoutContainer:Как удалить элементы из GXT HtmlLayoutContainer
public class MyWidget implements IsWidget {
public interface MyWidgetLayout extends XTemplates {
@XTemplate(source = "my/stuff/resources/MyWidget.html")
SafeHtml getTemplate(List<MyData> myData);
}
public static final MyWidgetLayout LAYOUT = GWT.create(MyWidgetLayout .class);
private final List<MyData> myData;
private HtmlLayoutContainer container;
public TaskRegulationsContainer(List<MyData> myData) {
this.myData = myData;
}
@Override
public Widget asWidget() {
if (container == null) {
container = new HtmlLayoutContainer(LAYOUT.getTemplate(regulations, postfix));
if (null != regulations) {
for (MyData d : myData) {
MyOtherWidget w = new MyOtherWidget(d);
container.add(w, new AbstractHtmlLayoutContainer.HtmlData(".my-data-" + myData.getUniqueId()));
}
}
}
return container;
}
public void handleRemovedData(MyData removedData) {
// How can I remove the widget corresponding to removedData
// with the selector my-data-{uniqueId}?
}
}
со следующим шаблоном:
<style>
</style>
<div>
<span>My Data:</span>
<div>
<tpl for="myData">
<div class="my-data-{uniqueId}"></div>
</tpl>
</div>
</div>
Как можно удалить отдельные myData
элементы списка из пользовательского интерфейса после создания шаблона?
Я попробовал container.select ("my-data-" + deletedData.getUniqueId()), removeChildren(), а затем removeFromParent(), но он не удалял всех детей, покидающих внутренние div. Я считаю, что есть ошибка в XTemplates GXT. Вместо этого я переключился на использование FlowContainer. – Cengiz
можете ли вы пройти сгенерированный HTML в свой вопрос? Метод removeChild должен работать, поскольку это метод GWT. –
Я пробовал их все, в том числе рекурсивно просматривая дочерние узлы DOM один за другим и удаляя их. Проблема в том, что, когда вы используете теги GQT, чтобы отображать список виджетов, виджеты отображаются, но не привязаны к их родителям. Очень странно, но я не могу найти другого способа объяснить это. К сожалению, у меня нет больше времени потратить на это; Я уже потратил впустую ~ 6-7 часов по этому вопросу :( –
Cengiz