ZK如何获取页面上的所有组件?

时间:2011-07-20 07:23:17

标签: components space zk

我正在尝试获取页面上的所有组件并设置它们的约束。所有组件都有id。我尝试使用IdSpace来获取页面上的所有ID但是如何获取Idspace?我用了

Window main ;
Page page ; 
page = main.getPage(); // This is null

如何获得IdSpace?

1 个答案:

答案 0 :(得分:2)

你在哪里写代码?

我的建议是将作曲家应用于根组件, 并迭代内部的所有组件。

这是一个可运行的示例,用于迭代所有标签的所有组件和设置值。 http://zkfiddle.org/sample/36t45ag/1-Iterate-all-the-components

代码在这里。

<window border="normal" title="hello" apply="pkg$.TestComposer">
    <label ></label>
    <vlayout>
            <label ></label>
            <label ></label>
            <label ></label>
            <div>
                <label ></label>
                <label ></label>                                    
            </div>                              
    </vlayout>
</window>

public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    iterate(comp);
}

public void iterate(Component comp){

    /*
     * do something for the component 
     */

    if(comp instanceof Label){
        ((Label)comp).setValue("Found label!");
    }


    List<Component> list = comp.getChildren();
    for(Component child:list){
        iterate(child);
    }

}