【发布时间】:2013-08-29 14:15:08
【问题描述】:
我动态创建我的面板,我也想动态添加 ajax 关闭侦听器,但对我不起作用。对于每个面板:
int u = _memosId.get(i);
Panel panel = (Panel)_application.createComponent(_context, "org.primefaces.component.Panel", "org.primefaces.component.PanelRenderer");
panel.setId("mymemo_" + String.valueOf(u));
panel.setHeader(_userNames.get(i));
panel.setClosable(true);
panel.setToggleable(true);
HtmlOutputText memo = new HtmlOutputText();
memo.setValue(_userMemos.get(i));
panel.getChildren().add(memo);
AjaxBehavior ajaxBehavior =(AjaxBehavior)_context.getApplication().createBehavior(AjaxBehavior.BEHAVIOR_ID);
ajaxBehavior.addAjaxBehaviorListener(new ClosePanelListener());
ajaxBehavior.setTransient(true);
panel.addClientBehavior("close", ajaxBehavior);
_column1.addWidget(panel.getId());
getDashboard().getChildren().add(panel);
和我的班级听众:
private static class ClosePanelListener implements AjaxBehaviorListener
{
@Override
public void processAjaxBehavior(AjaxBehaviorEvent event) throws AbortProcessingException
{
System.out.println("----------->>>>>>>>>>AjaxListener CALLED!!! ");
}
}
监听器没有被调用。
【问题讨论】:
-
您使用的是哪个版本的 primefaces?
-
Ajax4jsf 是 RichFaces 的子库(即那些
<a4j:xxx>标签)。您没有在代码中的任何地方使用它。相反,您使用的是 PrimeFaces。请不要用[ajax4jsf]标记问题,谢谢。 -
另外,不要在每篇文章的末尾抱怨“请帮助我,我卡住了”。它看起来如此愚蠢和不专业。 Just ask the question the smart way。我相应地编辑了你的帖子。
标签: ajax jsf primefaces