2

HTMLPanelのIDを定義するにはどうすればよいですか?もちろん、HTMLをで囲むこともできますが<div id="anID">、これではパネルのIDも設定されません。

4

2 に答える 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 に答える