【发布时间】:2019-09-08 12:16:22
【问题描述】:
我是 GWT 世界的新手,以前我使用 JavaScript。我有一些网页是多个元素。而且我需要使用 GWT 跟踪点击了哪个元素。
我正在使用 GWT 2.8.1
<div class="FileRow">
<a href="http://l24-n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink jpg" tabindex="1" id="jpg1"></a>
</div>
<div class="FileRow">
<a href="http://l24- n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink jpg" tabindex="2" id="jpg2"></a>
</div>
<div class="FileRow">
<a href="http://l24- n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink pdf" tabindex="3" id="pdf"></a>
</div>
GWT realization
Integer tabIndex = 1, count = 1;
for (final FieldFileInfo info : clientData.getFileInfo()) {
final FlowPanel rowPanel = new FlowPanel();
rowPanel.setStyleName("FileRow");
final HyperlinkPanel fileLink = FileInfoParser.getLinkPanel(info);
fileLink.setStyleName("fileLink");
fileLink.setTabIndex(tabIndex++);
fileLink.setText("");
switch (info.getFileExtension()) {
case "png" :
fileLink.addStyleName("png");
fileLink.getElement().setId("png");
break;
case "jpg" :
fileLink.addStyleName("jpg");
fileLink.getElement().setId("jpg"+count);
break;
case "pdf" :
fileLink.addStyleName("pdf");
fileLink.getElement().setId("pdf");
break;
default :
fileLink.addStyleName("file");
fileLink.getElement().setId("file");
}
rowPanel.add(fileLink);
count++;
}
click realization
Element openPng = Document.get().getElementById("png");
Event.sinkEvents(openPng, Event.ONCLICK);
Event.setEventListener(openPng, new OpenModalHandler());
现在我的点击实现仅适用于具有所需 ID 的第一个元素。但是将来可能会有多个元素具有相同的 id,因此我无法提醒其他元素。
预期结果是当我点击第一个元素时,GWT 使用 Window.alert() 显示点击了哪个元素。
【问题讨论】:
-
您能否分享一下您是如何在您的 gwt 应用程序中使用这个 html 的?
-
您是如何添加 ClickHandler 的?很有可能你已经拥有的东西会起作用,只需要稍作调整。
-
我已经添加了GWT实现代码。现在看起来像这样