页面代码:
<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);
}
}