ZK Listbox - OnClickListener - >的SelectedIndex

时间:2018-03-08 19:02:16

标签: listbox onclicklistener zk

是否可以在ZK的列表框中实现OnClick侦听器?单击某个项目时的触发器可以正常使用以下代码,但我无法访问所单击的项目(getSelectedItems()显示通过复选框或最顶层选定项目选择的项目,但我想通过以下方式触发与其无关的项目点击它)。这就是OnSelect监听器对我来说无关紧要的原因,必须直接选中复选框元素,而不是通过单击该项目自动选择复选框元素。
谢谢你的任何提示。

ZUL:

<row>                            
    <listbox id="article_output" width="100%" height="" 
      multiple="true" checkmark="true" nonselectableTags="*">
     <listhead>
          <listheader label="Article"/> 
     </listhead>  
     </listbox>  
</row>

创建模型和监听器

public void fillListBoxWithArticles(final Listbox lb, List<Article> articles) {
    lb.setItemRenderer(new ArticleItemRenderer());
    lb.setCheckmark(true);
    lb.setMultiple(true);
    ListModelList<Article> lml_articles = new ListModelList<Article>(articles);
    lml_articles.setMultiple(true);
    lb.setModel(lml_articles);
    lb.addEventListener(Events.ON_CLICK, new EventListener() {
        @Override
        public void onEvent(Event event) throws Exception { 
            logger.debug("SELECTED INDEX: " + lb.getSelectedIndex());
            setArticleToInfobox(articles.get(lb.getSelectedIndex()));
        }});
   lb.focus();
}

的ItemRenderer:

public class ArticleItemRenderer implements ListitemRenderer<Article> {
@Override
public void render(Listitem item, Article data, int index) throws Exception {

    item.appendChild(new Listcell(data.getArticletitle())); }}

0 个答案:

没有答案