我有一个GWT应用程序, 我想自动为每个元素添加ID 如果不可能,那么手动完成它的最快方法是什么?
答案 0 :(得分:3)
我对性能问题不太确定。如何以10-20个小部件的形式添加露水ids会导致性能下降?
要在小部件上自动设置调试ID,您需要在module.gwt.xml文件中包含以下内容。
<!-- Enable debug ID. -->
<inherits name="com.google.gwt.user.Debug"/>
<set-property name="gwt.enableDebugId" value="true"/>
答案 1 :(得分:1)
是的可能:
第一种方式:
Button b = new Button();
DOM.setElementAttribute(b.getElement(), "id", "my-button-id")
第二种方式:
FlowPanel panel = new FlowPanel();
panel.getElement().setId("my-flowpanel-id");
如果你想分配所有附加到DOM的id,你可以做
Iterator<Widget> iterator = RootPanel.get().iterator();
while(iterator.hasNext()) {
Widget w = iterator.next();
w.getElement().setId("id");
}
答案 2 :(得分:1)
您可以创建自己的Widget类来扩展GWT Widget并为每个Widget设置一个id:
public class myWidget extends Widget {
public myWidget(String id) {
super();
getElement().setId("id");
}
public void setId(String id) {
// Use this method if you use Ui:Binder
getElement().setId("id");
}
}
如果你不需要在所有小部件上使用id,例如FlowPanel,Button等,你可以扩展其他类而不是Widget。
答案 3 :(得分:1)
如果您希望元素始终具有Id,则可以使用UI对象类的ensureDebugId。它确保您的元素在将其附加到dom之前设置了Id。