【问题标题】:PrimeFaces 3.5 dynamic context menu using menu model and static context menu of primefaces is not working togetherPrimeFaces 3.5 使用菜单模型的动态上下文菜单和 primefaces 的静态上下文菜单不能一起工作
【发布时间】:2014-01-29 07:38:26
【问题描述】:

我在我的应用程序中使用 PrimeFaces 3.5。

  1. 我对我的代码进行了一些更改,并开始使用服务器端代码使用动态上下文菜单,而不是在 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);
  1. 此动态菜单运行良好。
  2. 在 oncomplete 事件的上下文菜单中,会弹出一个对话框。我正在为此对话框使用另一个简单的上下文菜单。早些时候,我能够处理对话框上的上下文菜单,但是因为我在我的主 xhtml 页面上更改了动态上下文菜单。上下文菜单现在没有出现在对话框中。

我在浏览器上没有收到任何异常或错误,因此我无法追踪我的简单上下文菜单丢失的原因,或者我现在需要做些什么来处理对话框上的简单上下文菜单?

请帮助我并提前致谢。

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    实际上我正在使用数据表,而在数据表中我无法实现上下文菜单。但是我使用了简单的解决方案,我的问题得到了解决。

    <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 以避免总是在选定对象中获取第一行。

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 2019-08-16
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多