我在我的应用程序中使用PrimeFaces 3.5。
示例代码
MenuItem menu1= new MenuItem();
menu1.setValue(Label);
menu1.setActionExpression(expFact.createMethodExpression(elCtx, "#{classname.methodname}", Void.class, new Class[0]));
menu1.setOncomplete("Dialog1.show()");
model.addMenuItem(menu1);
我没有在浏览器上收到任何异常或错误,所以我无法找到原因导致我的简单上下文菜单丢失或者我现在需要做些什么来处理对话框上的简单上下文菜单?
请帮助我,并提前致谢。
答案 0 :(得分:0)
实际上我使用的是Datatable,在数据表中我无法实现上下文菜单。但我使用了简单的解决方案,我的问题得到了解决。
<p:contextMenu for="Tableid" id="contextid" widgetVar="contextwidgetvar">
<p:menuitem value="Menu 1" oncomplete="confirmationdialog.show()" />
</p:contextMenu>
<p:dataTable id="Tableid" widgetVar="Table" var="sItem"
value="#{classname.methodname}" rowKey="#{sItem.id}" selection="#{classname.methodname.selectedObject}"selectionMode="single" lazy="true" editable="true">
<p:ajax event="contextMenu" oncomplete="contextwidgetvar.show();" />
</p:dataTable>
这个简单的步骤解决了这个问题。 有时候你可能需要添加一些javascript来避免总是得到所选对象的第一行。