Primefaces 6问题通过动作添加动态菜单项

问题描述 投票:0回答:1

我有一个menuitem的问题。目标是将两个菜单项放入一个菜单中,弹出单击来自数据表的图标,触发两个不同的操作。一切正常:弹出菜单,菜单呈现。但是当我尝试使用menuItem创建的菜单创建菜单时,定义了两个不同的命令,我在可视化中出现错误但是,当我只使用一个命令时,它工作正常。

我试图只使用一个并且它工作正常,我尝试使用第一个“ONE”然后“TWO”并且它工作正常但是当我尝试使用两者时它会爆炸。

这是代码:

DefaultMenuItem firstmenuitem = new DefaultMenuItem("ONE");
firstmenuitem.setIcon("ui-icon-newwin");
firstmenuitem.setCommand("#{myMB.loadDetail1(row, dynMetaCol.id)}");
firstmenuitem.setUpdate("dialog1");
firstmenuitem.setOncomplete("PF('DlgWv1').show()");
menuModel.addElement(firstmenuitem);

DefaultMenuItem secondMenuItem = new DefaultMenuItem("TWO");
secondMenuItem.setIcon("ui-icon-newwin");
secondMenuItem.setCommand("#{myMB.loadDetail2(row, dynMetaCol.id)}");
secondMenuItem.setUpdate("dialog2");
secondMenuItem.setOncomplete("PF('DlgWv2').show()");
menuModel.addElement(secondMenuItem);

xhtml内容是这样的:

...

<p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" styleClass="ui-menu-context ui-menuitem-link" model="#{myMB.menuModel}"/>

...

结果:

XML Parsing Error: unclosed CDATA section
Location: http://myaddress/mywebapp/templates/myfolder
/myfolder/mypage.xhtml
Line Number 19, Column 5647:

它似乎无法呈现第二个命令的操作和更新。

请帮忙。

java primefaces menuitem
1个回答
0
投票

由于我无法解释这个问题,我找到了一个解决方法。

symply,我删除了这些行:

firstmenuitem.setUpdate("dialog1");
firstmenuitem.setOncomplete("PF('DlgWv1').show()");

secondMenuItem.setUpdate("dialog2");
secondMenuItem.setOncomplete("PF('DlgWv2').show()");

并进入每个动作方法(loadDetail1和loadDetail2)我使用这个简单的方法:

public static void updateAndShowDialog(String dialogId, String widgetVarName) {
    RequestContext requestContext = RequestContext.getCurrentInstance();
    requestContext.update(dialog);
    requestContext.execute("PF('" + widgetVarName + "').show()");
}

希望这可以提供帮助。

最好的祝福。

© www.soinside.com 2019 - 2024. All rights reserved.