zk中解决listbox延迟加载问题

页面代码:

<listbox fixedLayout="true"      id="compResListBox"     width="98%" height="320px" style="border:none">
                                            <listhead height="20px"
                                                sizable="false">
                                                <listheader label="资源名称"
                                                    sort="false" align="left" width="100%" />
                                            </listhead>            

                 <listitem self="@{each='comp'}" value="@{comp.id}">
                                                <listcell label="@{comp.name}" />

                                            </listitem>

                              
  </listbox>

页面代码应用了 Listbox 控件, 蓝色部分,setModel 体式格式绑定命据, 然则发明, 在迁移转变中呈现了数据加载的延迟现象。

为了解决这个延迟加载现象,在页面注释掉了蓝色部分,采取了在 Java 中创建组建添加到 ListBox 中的体式格式 (如下红色部分), 解决了这个延迟的题目 。

    /**
     * 显示角色详细信息
     *
     * @param roleId
     */
    public void roleDetail() {
        Long roleId = (Long) roleListbox.getSelectedItem().getValue();
        role = roleService.queryRoleByRoleId(roleId);
        saveButton.setVisible(true);
        addRelButton.setVisible(true);
        
        // 创建资源菜单树
        this.createMenuTree();
        // 查询控件资源
        List<ResourceVO> resLi = resourceService
                .queryAllValidComponentResources();
        compResListBox.setModel(new BindingListModelList(resLi, true));
        final List<ResourceVO> resLiRole = resourceService
                .queryAllValidComponentResourcesByRoleId(roleId);

        Listbox listResult = (Listbox) self.getFellowIfAny("compResListBox");
        listResult.getItems().clear();
        listResult.setCheckmark(true);
        listResult.setMultiple(true);
        listResult.setRows(resLi.size());
        
        for(ResourceVO rvo : resLi){            
            final Listitem li = new Listitem();
            li.setParent(listResult);
            li.setValue(rvo.getId());
            
            Listcell cell = new Listcell();
            li.appendChild(cell);
            li.appendChild(new Listcell(rvo.getName()));            
        }

        compResListBox.setItemRenderer(new ListitemRenderer() {

            @Override
            public void render(Listitem arg0, Object arg1) throws Exception {
                ResourceVO vo = (ResourceVO) arg1;
                arg0.setLabel(vo.getName());
//                arg0.setId(String.valueOf(vo.getId()));
                arg0.setValue(vo.getId());
                ResourceVO res = new ResourceVO();
                res.setId(vo.getId());
                if (resLiRole.contains(res)) {
                    arg0.setSelected(true);
                }
            }
        });

        // List<Listitem> itemLi = compResListBox.getItems();
        // for (Listitem item : itemLi) {
        // ResourceVO res = new ResourceVO();
        // res.setId(Long.valueOf(item.getValue().toString()));
        // if (resLiRole.contains(res)) {
        // item.setSelected(true);
        // }
        // }
        
        
        reloadComponent("compResListBox");
        //reloadComponent("roleGrid");
        Textbox roleName = (Textbox) self.getFellow("roleName");
        roleName.setValue( role.getName() );
        
        Textbox desc = (Textbox) self.getFellow("description");
        desc.setValue( role.getDescription() );

        Textbox seq = (Textbox) self.getFellow("seq");
        seq.setValue( role.getSeq() );
 
        refreshRoleRelationDesc(role);
        
        Listbox validListbox = (Listbox) self.getFellow("validListbox");
        if(role.isValid()) {
            validListbox.setSelectedIndex(1);
        } else {
            validListbox.setSelectedIndex(2);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值