我在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代码要执行,有没有办法做到这一点。
答案 0 :(得分: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" />
来自你的近景图片
答案 1 :(得分:1)
在生产中,Java将被翻译成JavaScript代码,即obfuscated - 人类无法读取。因此,您不能只编译应用程序,然后调用项目中的某个类,因为它将在编译期间重命名。
您可以做的是导出其中一种方法,以便全局可用。然后,您将能够从JavaScript调用该导出的Java方法。
Java-&gt; JS和JS-&gt; Java之间的通信使用JSTI [JavaScript Native Interface]在GWT文档中解释此链接: