gpt4 book ai didi

java - 在 GWT 中循环生成 Hyperlink/HTML/'Please suggest'?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:28:23 25 4
gpt4 key购买 nike

所以我的问题如下:

比如,我在从数据库中获取数据后将其显示在一个 flextable 中,我正在使用循环以常规方式执行此操作。

现在,在整个第一列中,文本应该是可点击的,即我应该能够将点击处理程序添加到第一列值(因为我必须在点击任何第一列文本值时加载另一个表。)

问题:如何在循环中生成这样的超链接标签?当我尝试这样做时,问题就来了,因为我不知道如何在循环运行时给它们命名,也不知道如何在添加 ClickHandler 时使用相同的概念。

我是否应该使用超链接以外的其他东西来完成这项任务。请解释如何?

我非常感谢这方面的帮助,因为我是一个非常新的 GWT 编码员。

-- 千拉汤

最佳答案

使用超链接可能不是执行此类操作的最佳方法,因为您不应该将 ClickHandler 与超链接一起使用。一个Hyperlink设置一个HistoryToken,你应该响应History的变化。
如果您想拥有相同的外观和感觉,我会使用标签并将其设置为普通链接。(我将在以下示例中使用标签,但如果您愿意,您可以将其更改为超链接。)

我会创建一个扩展 Label 的类。此类将具有您在构造函数中设置的 ID。您可以将此 Id 发送到服务器以获取新的 FlexTable。在构造函数中,您添加一个 ClickHandler,它读取 id 字段并将其发送到服务器以获取新的 FlexTable。

public class FlexTableLabel extends Label implements ClickHandler {
int id=0;
public FlexTableLabel(String text, int id) {
this.id=id;
this.setText=text;
this.addCickHandler(this);
}

public void onClick(ClickEvent event) {
//sends the id to the server, of course you need to replace it with your
//service
yourService.getNewFlexTable(this.id);
}
}

在您的循环中,您只需创建新类的对象并为其提供适当的参数(我假设您有一个带有结果的 ArrayList。此 ArrayList 中的对象将具有文本和 ID):

for(int i=0; i<result.size;i++) {
FlexTable.setWidget(i,0, new FlexTableLabel(result.get(i).text, result.get(i).id);
}

我希望这至少能让您有所作为,如果仍有不清楚的地方,请发表评论,我会尽力帮助您弄清楚。

编辑基于Chirayu's post :

在不了解您的应用程序的情况下很难解释这样的事情。我通常执行 Singleton Pattern获取特定的小部件。所以我会创建一个这样的类:

public static YourPanel extends Panel {
private static YourPanel instance=null;

public static YourPanel getInstance() {
if(instance==null) {
instance=new YourPanel();
}
return instance;
}
}

在您的 EntryPointClass 中,您将拥有如下内容:

public class YourEntryClass extends EntryPoint {
public void onModuleLoad() {
RootPanel.get().add(YourPanel.getInstance());
}
}

您现在可以在服务的 onSuccess() 部分调用 YourPanel.getInstance() 方法来更改面板的内容:

yourService.getNewFlexTable(this.id, new AsyncCallback<ArrayList<String>>() {
public void onSuccess(ArrayList<String> result) {
For(int i=0;i<result.size;i++) {
YourPanel.getInstance().add(result.get(i);
}
}
});

希望对您有所帮助。如果没有,请发表评论。

示例应用
Sample app running
Sample app source code

关于java - 在 GWT 中循环生成 Hyperlink/HTML/'Please suggest'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354533/

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