2

私はcontextMenuでツリーを使用していますここにコードがあります:

      <p:contextMenu id="campaignPlaneTreeContextMenu" for="campaignPlanetree" >
          <p:menuitem value="New Camapign" disabled="#{projectCampaignManagementMB.campaignOptionsFlag}" />
          <p:menuitem value="Assign" disabled="#{projectCampaignManagementMB.FSTOptions}" />
          <p:menuitem value="Copy campaign" disabled="#{projectCampaignManagementMB.FSTOptions}"/>
          <p:menuitem value="Paste Campaign" disabled="#{projectCampaignManagementMB.pasteOptionCampaignFlag}"/>
          <p:menuitem value="Delete" disabled="#{projectCampaignManagementMB.FSTOptions}" />
          <p:menuitem value="Import Tests" disabled="#{projectCampaignManagementMB.campaignOptionsFlag}" />
      </p:contextMenu>
      <p:tree id="campaignPlanetree"
                    value="#{projectCampaignManagementMB.root}" var="node"
                    selectionMode="single"
                    selection="#{projectCampaignManagementMB.selectedNode}"
                     dynamic="true">

          <p:ajax event="select" listener="#{projectCampaignManagementMB.onCampaignPlaneNodeSelect}" update=":campaignForm:addCampaignBtn :campaignForm:renameCampaignBtn :campaignForm:importCampaignBtn :campaignForm:deleteCampaignBtn :campaignForm:importCampaignDlg :campaignForm:campaignPlaneTreeContextMenu" /> 

          <p:treeNode  value="#{node}">
              <h:outputText value="#{node}" />
          </p:treeNode>
           .....

ManagedBean:

if(selectedNode.getData() instanceof Campaign){// when a user select a tree node the contextmenu item are disabled and enabled

          setCampaignOptionsFlag(false);
        ....   
  }

無効化された属性がなければ、すべてがうまくいきますが、それを追加すると、コンテキストメニューはすぐに消えます。

4

1 に答える 1

2

各ノードの矢印にカーソルを置くと、選択したツリーノードの左側にあるコンテキストメニューがすぐに消えないことがわかりました。

しかし、最後のツリーレベル(葉)では、ノードが拡張可能ではないため、矢印は表示されません。したがって、これは確かにprimefacesのバグです。

于 2012-10-20T09:22:36.003 に答える