在GWTEXT可以使用JSNI来调用GWT的函数:
方式:
【instance-expr】@class-name::method-name(param-signature)(arguments)
说明:instance-expr::对象实例,如果调用静态函数的话,则可以不需要这部分
class-name:函数所在的类(或子类)的完整名称
method-name:函数名称
param-signature:函数的参数签名
arguments:调用函数的实际参数
例如:
在数据列表中增加一个按钮:
ColumnConfig jsniColumn = new ColumnConfig("JSNI","jsni",100,true,new Renderer(){
public String render(Object value,CellMetadata cellMetadata,Record record,int rowIndex,int colNum,Store store){
return "<input type='button' value='JSNITEST' οnclick='jsnitest()' />";
}
}
上面的onclick的方法相当于外部的Javascript。
在JAVA中如何调用?
首先要写一个jsnitest方法:
private native void jsnitest(){
var gridId = this;
$Wnd.jsnitest=function(){
@com.gwtext.client.widgets.MessageBox::alert(Ljava/lang/String)("hello"); //静态的可以不需要实例对象;
gridId.@com.nt.nis.jbpm.app.client.ui.XXX:getGridId();//非静态的则需要实例对象来调用。
}
}