0

我在 Gxt 组件的 ListView 中使用以下代码块,并且 onRender 以下模板将设置为默认值。我可以使用图像 + 模型值来渲染组件。我想为渲染图像编写 onClick 事件。

这里是我将模板设置为 ListView 的地方。

 rightListView.setTemplate(getTemplate(moduleBaseURL));

模板设置:

private native String getTemplate(String base) /*-{  
return ['<tpl for=".">',  
'<div class="thumb"><img src="'+base+'images/default/tabs/tab-close.gif" width="15" height="15" style="CURSOR:pointer"/>{bookCode}</div>',  
'</div>',  
'</tpl>',  
''].join("");  

}-*/;

屏幕截图

在此处输入图像描述

单击关闭图像时,我有一些要执行的 gwt 代码,有什么办法可以做到这一点。

4

2 回答 2

2

是的..您可以在您的 gwt 代码中编写本机 javascript。

public static native void exportMyFunction() /*-{
   $wnd.myFunction =
      $entry(@com.myCompany.myProject.client.myClass::onCloseGwtFunction());
}-*/;
public static void onCloseGwtFunction()
{
   // your gwt code tobe executed 
}

当您应用初始化时,您必须从 gwt 类调用 exportMyFunction()。你可以给

<img onClick='window.myFunction()' src="'+base+'images/default/tabs/tab-close.gif" width="15" height="15" style="CURSOR:pointer" /> 

在您关闭图片的点击中

于 2013-06-20T08:50:21.903 回答
1

在生产中,Java 将被翻译成 JavaScript 代码,这些代码将被混淆——人类无法阅读。因此,您不能只编译您的应用程序,然后调用您项目中的某个类,因为它将在编译期间重命名。

您可以做的是导出其中一种方法,因此它将在全球范围内可用。然后,您将能够从 JavaScript 调用该导出的 Java 方法。

Java->JS 和 JS->Java 之间的通信是使用 JSNI[JavaScript Native Interface] 完成的,此链接下的 GWT 文档中解释了:

从手写 JavaScript 调用 Java 方法

于 2013-06-21T10:53:25.670 回答