>我有一个问题删除渲染并将渲染转换为 zul .我这里有渲染方法,这个渲染方法删除了,渲染代码用 zul 编写。
我的祖尔:-
<listbox id="caseInfoCodesViewList" sizedByContent="true"
sclass="vertical-scroll" vflex="1" model="@bind(vm.folderInfoList)"
emptyMessage="${a:resource('LABEL_NOROWS')}"
itemRenderer="@load(vm.itemRenderer)"
selectedItems="@bind(vm.selectedCodes)" checkmark="@load(vm.data)"
multiple="true">
<listhead >
<listheader label="@load(vm.getText('FolderInfoDetail:LABEL_DESCRIPTION'))" width="25%"></listheader>
<listheader label="@load(vm.getText('FolderInfoDetail:LABEL_CODES'))" width="10%"></listheader>
<listheader label="@load(vm.getText('FolderInfoDetail:LABEL_ORDER'))" width="15%"></listheader>
<listheader label="@load(vm.getText('FolderInfoDetail:LABEL_PRINT'))" width="15%"></listheader>
<listheader label="@load(vm.getText('FolderInfoDetail:LABEL_REQUIRED'))" width="20%"></listheader>
<listheader label="@load(vm.getText('FolderInfoDetail:MANDATORY'))" width="15%"></listheader>
</listhead>
</listbox>
视图模型 :-
@NotifyChange("*")
public ListitemRenderer getItemRenderer() {
ListitemRenderer _rowRenderer = null;
if (_rowRenderer == null) {
_rowRenderer = new ListitemRenderer() {
public void render(Listitem row, Object data, int index) throws Exception {
if (row instanceof Listgroup) {
Listcell group = new Listcell(data.toString());
row.appendChild(group);
} else {
final FolderInfoData info = (FolderInfoData) data;
row.setAttribute("data", info);
Listcell descCell = new Listcell();
descCell.setValue(info.infoDesc);
Label label = new Label();
if (StringUtils.isNotBlank(info.infoDesc)) {
label.setValue(info.infoDesc);
}
label.setMaxlength(15);
descCell.appendChild(label);
row.setValue(String.valueOf(info.infoCode));
row.appendChild(descCell);
row.setValue(String.valueOf(info.infoCode));
row.appendChild(new Listcell(String.valueOf(info.infoCode)));
Listcell orderCell = new Listcell();
orderCell.setValue(String.valueOf(info.infoDisplayOrder));
Intbox tbox = new Intbox();
tbox.setValue(info.infoDisplayOrder);
tbox.setMaxlength(10);
orderCell.appendChild(tbox);
row.appendChild(orderCell);
Listcell printFlagCell = new Listcell();
Radiogroup groupPrintCell = new Radiogroup();
Radio yesPrintFlag = new Radio("Yes");
yesPrintFlag.setValue("Y");
groupPrintCell.appendChild(yesPrintFlag);
Radio noPrintFlag = new Radio("No");
noPrintFlag.setValue("N");
groupPrintCell.appendChild(noPrintFlag);
if (abcd.toBoolean(info.infoPrintFlag)) {
groupPrintCell.setSelectedItem(yesPrintFlag);
} else {
groupPrintCell.setSelectedItem(noPrintFlag);
}
printFlagCell.appendChild(groupPrintCell);
row.appendChild(printFlagCell);
Listcell setUpCell = new Listcell();
Radiogroup groupSetUP = new Radiogroup();
Radio yesSetUP = new Radio("Yes");
yesSetUP.setValue("Y");
groupSetUP.appendChild(yesSetUP);
Radio noSetUP = new Radio("No");
noSetUP.setValue("N");
groupSetUP.appendChild(noSetUP);
if (abcd.toBoolean(info.valueRequired)) {
groupSetUP.setSelectedItem(yesSetUP);
} else {
groupSetUP.setSelectedItem(noSetUP);
}
setUpCell.appendChild(groupSetUP);
row.appendChild(setUpCell);
Listcell mandatoryCell = new Listcell();
Radiogroup groupMandatory = new Radiogroup();
Radio yesMandatory = new Radio("Yes");
yesMandatory.setValue("Y");
groupMandatory.appendChild(yesMandatory);
Radio noMandatory = new Radio("No");
noMandatory.setValue("N");
groupMandatory.appendChild(noMandatory);
if (abcd.toBoolean(info.getMandatory())) {
groupMandatory.setSelectedItem(yesMandatory);
} else {
groupMandatory.setSelectedItem(noMandatory);
}
mandatoryCell.appendChild(groupMandatory);
row.appendChild(mandatoryCell);
}
}
};
}
return _rowRenderer;
}
谁能告诉我如何将此渲染更改为 zul?
它很简单,因为我看到你使用了 MVVM。在 ZUl 端使用简单Listbox
,因为您没有添加ListItem
,现在在 ZUL 页面中ListCell
所以您使用了渲染,我建议使用其他子组件Listbox
ListItem
和ListCell
,为了检查 zul 端的值,您也可以在 ZUL 中使用表达式${"Some Expression"}
它会解决您的问题。