我有一个 GWT 应用程序,如果不可能,我想自动为每个元素添加 ID,手动执行此操作的最快方法是什么?
问问题
2010 次
4 回答
3
我不太确定性能问题。以 10-20 个小部件的形式添加露水 id 会如何导致性能损失?
要在小部件上自动设置调试 ID,您需要在 module.gwt.xml 文件中包含以下内容。
<!-- Enable debug ID. -->
<inherits name="com.google.gwt.user.Debug"/>
<set-property name="gwt.enableDebugId" value="true"/>
于 2013-02-11T04:52:34.340 回答
1
如果你想让一个元素总是有一个 Id,你可以使用UI Object 类的ensureDebugId。它确保您的元素在将其附加到 dom 之前设置了一个 Id。
于 2013-02-11T04:48:51.537 回答
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");
}
于 2013-02-10T19:16:43.953 回答
1
您可以创建自己的 Widget 类来扩展 GWT 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");
}
}
显然,如果您不需要所有小部件(如 FlowPanel、Button 等)上的 id,则可以扩展其他类而不是 Widget。
于 2013-02-11T00:58:01.237 回答