2

GWT要素にIDを追加しようとしています。次のコードを試してみました。

SubscribeView.javaファイルでは、existingFundRadioButtonフィールドが定義されており、次のようにIDを設定しています。

DOM.setElementAttribute( existingFundRadioButton.getElement(), 
                         "ID",
                         "existingFundRadioButton" )

使ってみexistingFundRadioButton.getElement().setId("existingFundRadioButton")ましたが、うまくいきません。

これは私のコードです。

<g:FlowPanel width="100%">
    <g:FlowPanel>

        <g:HTMLPanel ui:field='searchPanel' styleName="{res.fdcWidgets.box}">
            <table class="{res.fdcWidgets.inputTable}">
                <colgroup>
                    <col width="25%" />
                    <col width="75%" />
                </colgroup>
                <tbody>
                    <tr>
                        <td>
                            <fdc:I18NRadioButton name="fund"
                                ui:field="existingFundRadioButton" checked="true"
                                messageKey="buy.existingFundLabel" />
                        </td>
                        <td>
                            <hli:HoldingsListBoxWidget ui:field="holdingsListBox" />
                        </td>
                    </tr>

                </tbody>
            </table>

        </g:HTMLPanel>
    </g:FlowPanel>
    <g:FlowPanel styleName="{res.fdcWidgets.contentRightColumn}">
        <fund:FundInformationWidget ui:field="fundInformationWidget" />
    </g:FlowPanel>
</g:FlowPanel>
4

1 に答える 1

2

古いソリューション

古いバージョンの GWT を使用している場合 - RadioButton については、ブラウザー固有のアプローチを使用します。これは、RadioButton を拡張することによって行います。

MyRadioButton extends RadioButton{
        public void setId( String id )
        {
            getElement().setId( id );
            Element child = DOM.getChild( getElement(), 0 );
            DOM.setElementAttribute( child, "id", id + CONST_INPUT_ELEMENT );
            final Element e_label = DOM.getChild( getElement(), 1 );
            // Handling IE
            DOM.setElementAttribute( e_label, "htmlFor", id + CONST_LABEL_ELEMENT );
            // Handling Other Browsers
            DOM.setElementAttribute( e_label, "for", id + CONST_LABEL_ELEMENT );
        }
}

新しいソリューション

すべてのウィジェットで ensureDebugId をサポートする最新の GWT を持っている幸運な人はensureDebugId("someid")、UIObject から継承されたすべての UI 要素で使用できます!!!!

于 2013-01-10T10:19:50.160 に答える