代码之家  ›  专栏  ›  技术社区  ›  tpow

GWT/Java——将Ajax调用获取到对话框中

gwt
  •  0
  • tpow  · 技术社区  · 14 年前

    我刚接触GWT,在Ajax调用的结果出现在我的对话框中时遇到了一个问题。

    我在这里设置了我的对话框、vpanel和响应标签:

       VerticalPanel eventDetailWindow = new VerticalPanel();
    
       final DialogBox dialogBox2 = new DialogBox();
       dialogBox2.setText("Event Detail");
       dialogBox2.setAnimationEnabled(true);
    
       final HTML serverResponse3 = new HTML("<b> ok, this is working</b>");
       serverResponse3.addStyleName("detailView");
    
       eventDetailWindow.add(serverResponse3);
       eventDetailWindow.addStyleName("detailWindow");
       dialogBox2.setWidget(eventDetailWindow);
       RootPanel.get("detailWindow").add(eventDetailWindow);
    

    然后,在onSuccess方法中,我得到了:

    dialogBox2.setText("Remote Procedure Call");
    serverResponse3.setHTML(result);
    dialogBox2.center();
    closeButton.setFocus(true);
    

    但是,当它触发时,响应显示在页面上,而不是在对话框中,并且对话框为空。它看起来像是和启动项目一样设置的-这很好。

    有人能帮我吗…?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Kerem    14 年前

    不要用那个 RootPanel.get("detailWindow").add(eventDetailWindow); 如果只想添加到对话框2中

    这样使用:

    dialogBox2.setWidget(eventDetailWindow);
    

    你不必再加 dialogBox2.show(); 因为 dialogBox2.center(); 该代码最初将显示对话框2。

    package com.ex.client;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
    import com.google.gwt.user.client.ui.Button;
    import com.google.gwt.user.client.ui.DialogBox;
    import com.google.gwt.user.client.ui.HTML;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.google.gwt.user.client.ui.VerticalPanel;
    
    
    public class Example implements EntryPoint {
    
    public void onModuleLoad() {
            VerticalPanel eventDetailWindow = new VerticalPanel();
    
           final DialogBox dialogBox2 = new DialogBox();
           dialogBox2.setText("Event Detail");
           dialogBox2.setAnimationEnabled(true);
    
           final HTML serverResponse3 = new HTML("<b> ok, this is working</b>");
           serverResponse3.addStyleName("detailView");
    
           eventDetailWindow.add(serverResponse3);
           eventDetailWindow.addStyleName("detailWindow");
           dialogBox2.setWidget(eventDetailWindow);
           Button b= new Button("click");
           b.addClickHandler(new ClickHandler() {
    
            @Override
            public void onClick(ClickEvent event) {
                dialogBox2.setText("Remote Procedure Call");
                serverResponse3.setHTML("result");
                dialogBox2.center();
            }
        });
    
           RootPanel.get().add(b);
    
      }
    }
    
        2
  •  0
  •   Strelok    14 年前

    您正在添加 eventDetailWindow 我没看到有人打电话给 .show() 在对话框上。你能发布你的完整代码吗?