【ZK学习笔记】点击listcell中的button 如何获取按钮所在的listitem

Listbox绑定数据--》list.setModel(new ListModelList<InStorageInfo>(inStorageInfos));

Listbox显示数据--》list.setItemRenderer(new InStorageInfoListItemRenderer());  //感觉跟android中的adapter类似

通过MouseEvent获取被点击的button,然后通过getParent得到listitem

前端:

<listbox id="list" mold="paging" pageSize="10"
emptyMessage="No saleinfo found in the result">
<listhead>
<listheader label="Detail" />
</listhead>
<template name="model">
<listitem>
</listitem>
</template>
</listbox>

后端:

public class InStorageInfoListItemRenderer implements ListitemRenderer<InStorageInfo> {


@Override
public void render(Listitem item, InStorageInfo data, int index) throws Exception {

Listcell detail=new Listcell();
final Button detailBtn=new Button();
detailBtn.setLabel("Detail");
detailBtn.setAttribute("info", data);
detail.appendChild(detailBtn);
detail.setParent(item);
ComponentsCtrl.applyForward(detailBtn, "onClick=onClickDetail");
item.setAttribute("data", data);
}

}

public class InStorageInfoCtrl extends GenericForwardComposer implements Serializable {

private Listbox list;

public void onClickDetail(MouseEvent event) {//in order to get button,must use MouseEvent
Listitem listitem = (Listitem) event.getTarget().getParent().getParent();
InStorageInfo info = (InStorageInfo) listitem.getAttribute("data");
// Executions.sendRedirect("/zul/detail.zul?id=" + info.getID());
Map<String,Integer> map=new HashMap<String, Integer>();
map.put("ID", info.getID());
Window window=(Window) Executions.createComponents("/zul/detail.zul", inStorageWin, map);
window.doModal();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值