I've the following code snippet:
myPanel.getElement().setId("left-content");
//...
//...
Element e = DOM.getElementById("left-content");// this returns NULL!
Here is a longer code snippet:
public class RootComposite extends Composite
{
public RootComposite(int comboSelectedIndex)
{
VerticalPanel verticalPanel = new VerticalPanel();
initWidget(verticalPanel);
VerticalPanel containerPanel = new VerticalPanel();
containerPanel.setSpacing(1);
verticalPanel.add(containerPanel);
verticalPanel.setSize("100%", "100%");
RightPanelMainComposite rightPanelMainComposite = new RightPanelMainComposite();
VerticalPanel rightcolVerticalPanel = new VerticalPanel();
rightcolVerticalPanel.setStyleName("rightcol");
VerticalPanel searchVerticalPanel = new VerticalPanel();
searchVerticalPanel.setStyleName("search");
rightcolVerticalPanel.add(searchVerticalPanel);
searchVerticalPanel.add(rightPanelMainComposite);
ContentComposite contentComposite = new ContentComposite();
HorizontalPanel leftContentPanel = new HorizontalPanel();
containerPanel.add(leftContentPanel);
leftContentPanel.getElement().setAttribute("id", "left-content");
DOM.getElementById("left-content"); // returns NULL !!!
// ....
}
The above Composite is being added to the RootPanel
.
You can use DOM.getElementById
only if the requested widget is actually attached to the DOM.
Your code shows that you set the id
in the constructor and request the correspondant element right after when the widget is not attached yet. Your widget is actually attached only when its onLoad method is called.
I assume, that you didn't add myPanel to the DOM (e.g. RootPanel.get().add(myPanel)
) before calling DOM.getElementById("left-content")
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With