在jsf中使用javascript禁用动态上下文菜单

时间:2013-04-22 10:09:59

标签: javascript css jsf-2 primefaces contextmenu

是否可以使用java脚本在JSF2.1中禁用动态上下文菜单?

document.getElementById("myForm:contextMenuId:contextMenuItemId").style.display = 'none';

这适用于p:menuItem,如下所示。

 <p:contextMenu id="contextMenuId">                 
   <p:menuitem id="contextMenuItemId" value="Hi"></p:menuitem>
</p:contextMenu>

我如何为以下写的p:contextMenu(动态)

执行类似的操作
<p:contextMenu id="contextMenuId1" model="#{myBean.model}" ></p:contextMenu>

2 个答案:

答案 0 :(得分:0)

您可以在<p:outputPanel中交换svg:

<h:form>
            <p:outputPanel id="test">
                <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190">
                    <polygon points="100,10 40,180 190,60 10,60 160,180"
                             style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
                </svg>
            </p:outputPanel>
            <p:contextMenu for="test">  
                <p:menuitem value="Save" 
                            icon="ui-icon-disk"/>  
                <p:menuitem value="Update"

                            icon="ui-icon-arrowrefresh-1-w"/>  
                <p:menuitem value="Delete" icon="ui-icon-close"  
                            ajax="false"/>  
                <p:menuitem value="Homepage" url="http://www.primefaces.org"  
                            icon="ui-icon-extlink"/>  
            </p:contextMenu>  
        </h:form>

答案 1 :(得分:0)

在我不想渲染自定义contextMenu的所有情况下,我点击新的p:contextMenu并将其渲染为false。 (我无法找到更好的解决方案,但这应该是为了teim,直到我能找到更好的方法)