GWT在页面加载时动态加载元素

时间:2013-05-14 13:31:17

标签: java gwt smartgwt gwt-ext

我有一些页面应该有复选框的动态计数,输入取决于从数据库

收到的数据

现在我喜欢这个:

  1. 对组件加载进行rpc调用(获取输入数据)
  2. onSuccess在表单上动态添加输入
  3. 结果:表单显示没有内容(因为它会调用异步),只有在调整大小后才能正确显示内容 (可能我可以用自己发起resize事件或redraw,不知道如何......)

    问题:我是GWT的新手,执行此任务的最佳方法是什么? (现在我正在使用gwt-ext http://gwt-ext.com/,但我认为这无关紧要)

    更新以刷新面板,可以拨打doLayout();

2 个答案:

答案 0 :(得分:2)

我不熟悉gwt-ext,但在“vanilla”gwt中你有两种选择:

  1. onSuccess方法
  2. 中刷新小部件(应显示结果)
  3. 在返回结果之前,请继续执行其余代码。
  4. 为了更加精确,我需要更多的代码。

答案 1 :(得分:1)

我遇到了类似的挑战,我的小部件内容加载了几秒钟。我显示“”正在加载,请等待......“”标签,直到加载小部件:

final VerticalPanel mainPanel = new VerticalPanel();

    initWidget(mainPanel); 
    mainPanel.add(new Label("Loading, please wait ..."));
    mainPanel.add(new myCustomWidget()); // this constructor uses RPC to get content

    Timer t = new Timer()
    {
        public void run()
        {
            if (!mainPanel.getWidget(1).isVisible()) { 
                // do nothing
            } else {
                // remove label "Loading, please wait ..."
                mainPanel.remove(0);
                // stop timer
                cancel(); 
            }
        }
    };
    // repeat every 30 miliseconds until myCustomWidget is visible
    t.scheduleRepeating(30);