ZK 使用forEach循环,第一次加上style属性,第二次不加属性--解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/85993885

不推荐的写法:

页面代码:

                                <div class="form-group label-row">
                                    <label class="col-lg-4 control-label">
                                       角色
                                    </label>
                                    <div class="col-lg-8" forEach="${vm.listRole}">
                                        <z:label style="${vm.count}" value="${ec:labelValue0(each)}" />
                                    </div>
                                </div>

后台VM代码为:

    private int count = 0;


    public String getCount(){
        if (0 == count){
            count++;
            return null;
        }else {
            return "margin-left: 186px;";
        }
    }
  • 这里主要用后台代码进行判断当前集合是否为第一个,如果是第一个元素则返回null,如果不是第一个元素,则返回style样式的值.

 

推荐的写法如下

  • 1), forEachStatus 变量 
  • forEachStatus变量是org.zkoss.ui.util.ForEachStatus的一个实例 (instance),用来保存(hold)当前迭代(iteration)的信息。也主要用于取得封闭元素的 项目,这些元素已通过 forEach 属性赋值。具体使用,如下这个例子
  •  2), attribute 元素 
  • attribute元素是用来定义 XML 元素属性的元素。妥善使用,它可以使页面更具可读性。
  • 你还可以决定是否使用trim属性来省略属性值开头和末位的值
attribute 元素
属性名称 描述
name 必须 指定属性名称
trim

可选 默认为false 

指定是否省略属性值开头及末尾的空格

if

可选 

指定为这个元素赋值的条件

unless

可选

指定不为这个元素赋值的条件

前台页面代码

                                <div class="form-group label-row">
                                    <label class="col-lg-4 control-label">
                                      角色
                                    </label>
                                    <div class="col-lg-8" forEach="${vm.userRoles}">
                                        <z:label value="${ec:labelValue0(each)}">
                                            <z:attribute name="style" trim="true" if="${forEachStatus.index gt 0}">
                                                margin-left:186px;
                                            </z:attribute>
                                        </z:label>
                                    </div>
                                </div>
  • 这里没用使用后台代码来进行判断,这样更加方便

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/85993885
zk