HTMLPanelのIDを定義するにはどうすればよいですか?もちろん、HTMLをで囲むこともできますが<div id="anID">
、これではパネルのIDも設定されません。
1941 次
2 に答える
6
htmlPanel.getElement().setId("myId");
パネルがUiBinderテンプレートで定義されている場合は、「ui:field」を介してJavaクラスでパネルにアクセスできるようにする必要があります。
<g:HTMLPanel ui:field="htmlPanel">...</g:HTMLPanel>
...
@UiField
HTMLPanel htmlPanel;
public MyWidget() {
initWidget(uiBinder.createAndBindUi(this));
htmlPanel.getElement().setId("myId");
}
注:使用<g:HTMLPanel id="myId">
は機能しません。
GWTウィジェットでIDの使用が簡単にならなかったのには理由があります。
同じページで同じIDを2回使用しないように十分に注意する必要があります。これは、自然な再利用要因のため、ウィジェットで特に簡単に発生します。(ウィジェットを再利用できるだけでなく、親ウィジェットも再利用できます...)
たとえば、MyWidgetがページドキュメントに同時に複数回表示される可能性がある場合は、毎回異なるIDを設定する必要があります。それを行うことは可能であり、必要に応じて、を使用できますcom.google.gwt.dom.client.Document.createUniqueId()
。
または、可能であれば、idの代わりにCSSクラスを使用することもできます(cssクラスは同じページで再利用でき、再利用する必要があるため)。
于 2012-10-14T16:36:04.093 に答える
5
あなたはそのようにそれを行うことができます:
htmlPanel.getElement().setId( "yourId" );
これは、すべてのウィジェット/要素で機能します。
于 2012-10-14T16:11:42.537 に答える