我正在尝试使用SpinnerItem作为ListGridField
final ListGridField quantityGridField = new ListGridField("quantity", "Cantidad");
quantityGridField.setEditorType(SpinnerItem.class);
quantityGridField.setCanEdit(true);
但是在我编译项目并部署它之后,出现了这个错误。
java.lang.IllegalArgumentException: No BeanFactory has been registered for: com.smartgwt.client.widgets.form.fields.SpinnerItem
这是我第一次收到此错误,而我在此处未找到任何相关问题。
答案 0 :(得分:0)
正如你在javadoc中描述的那样使用你的方法(setEditorType(class)),你使用了smartgwt的Reflection机制。你可以在这里阅读:http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/docs/Reflection.html。 根据此文档,您应该在使用之前注册SpinnerItem(它是FormItem的子类):
同样,注册FormItem及其中的所有子类 classpath(包括你的自定义子类),你可以使用 BeanFactory.FormItemMetaFactory。
GWT.create(BeanFactory.FormItemMetaFactory.class);
因此,在使用之前,只需尝试在代码中的某处插入此GWT.create行,这样gwt编译器就能找到您的编辑器。