Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf PrimeFaces 3.5使用菜单模型的动态上下文菜单与PrimeFaces的静态上下文菜单不协同工作_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf PrimeFaces 3.5使用菜单模型的动态上下文菜单与PrimeFaces的静态上下文菜单不协同工作

Jsf PrimeFaces 3.5使用菜单模型的动态上下文菜单与PrimeFaces的静态上下文菜单不协同工作,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我在应用程序中使用PrimeFaces 3.5 我在代码中做了一些更改,并开始使用动态上下文菜单,使用服务器端代码代替primefaces的静态简单上下文菜单 示例代码 MenuItem menu1= new MenuItem(); menu1.setValue(Label); menu1.setActionExpression(expFact.createMethodExpression(elCtx, "#{classname.methodnam

我在应用程序中使用PrimeFaces 3.5

  • 我在代码中做了一些更改,并开始使用动态上下文菜单,使用服务器端代码代替primefaces的静态简单上下文菜单 示例代码

            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);
    
  • 这个动态菜单工作正常
  • 在oncomplete事件的上下文菜单中,会弹出一个对话框。我正在为该对话框使用另一个简单的上下文菜单。早些时候,我能够在对话框中处理上下文菜单,但我已经在我的xhtml主页面上更改了动态上下文菜单。上下文菜单现在不显示在对话框上
  • 我在浏览器上没有收到任何异常或错误,因此我无法跟踪我的简单上下文菜单丢失的原因,或者我现在需要做什么来处理对话框上的简单上下文菜单


    请帮助我并提前感谢。

    事实上,我使用的是Datatable,在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,以避免总是获取选定对象中的第一行