Jsf 2 primefaces关联菜单不更新为对话框输入

Jsf 2 primefaces关联菜单不更新为对话框输入,jsf-2,primefaces,contextmenu,Jsf 2,Primefaces,Contextmenu,我已经看到了这个问题。请查看我的jsf页面 <h:form id="companyList"> <p:contextMenu for="companiesDB" style="height:53px;"> <p:menuitem value=" edit" update="panelGrid" icon="ui-icon-pencil" oncomplete="editCompany.show()" />

我已经看到了这个问题。请查看我的jsf页面

<h:form id="companyList">
            <p:contextMenu for="companiesDB" style="height:53px;">
                <p:menuitem value=" edit" update="panelGrid" icon="ui-icon-pencil" oncomplete="editCompany.show()" />

                <p:menuitem value=" delete" update="panelGrid" icon="ui-icon-closethick" onclick="editCompany.show()" />
            </p:contextMenu>

            <p:dataTable id="companiesDB" var="companies"
                value="#{companyController.companyList}" rowKey="#{companies.pkId}"
                selection="#{companyController.selectedCompany}"
                selectionMode="single" paginator="true"
                paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                rows="20" >
                <p:column headerText="name">
                    #{companies.companyName}
                </p:column>
                <p:column headerText="desc">
                    #{companies.description}
                </p:column>
            </p:dataTable>

            <p:dialog header="edit mode" widgetVar="editCompany"
                modal="true" height="160" width="390"
                id="dialog" resizable="false">

                <p:panelGrid cellpadding="10" id="panelGrid" >
                    <p:row>
                        <p:column width="300">
                            <h:outputText value="name:" style="float:left;" />
                        </p:column>
                        <p:column>
                            <p:inputText   value="#{companyController.selectedCompany.companyName}"/>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column>
                            <h:outputText value="desc:" style="float:right;" />
                        </p:column>
                        <p:column>
                            <p:inputText  
                                value="#{companyController.selectedCompany.description}" />
                        </p:column>
                    </p:row>

                </p:panelGrid>

                <br />
                <br />
                <p:commandButton value="save" icon="ui-icon-check"
                    style="float:right; margin-right:25px;" update="companiesDB"
                    oncomplete="addCompany.hide();"
                    action="#{companyController.insertCompany()}">
                </p:commandButton>
            </p:dialog>
 </h:form>

#{companys.companyName}
#{公司说明}


控制台错误为:
/company.xhtml@46,91 value=“#{companyController.selectedCompany.companyName}”:无法访问目标,“selectedCompany”返回null

请尝试将对话框id重命名为
mydialog
(为了安全起见)

并按如下方式更新菜单项(请注意
update=“mydialog”
):


最后一件事:将
id=contextMenuID
添加到您的上下文菜单中

谢谢您的反馈。我需要在哪里写这个contextID?请解释contextID及其使用方法?
Daniel,p:menuitem的禁用属性?我的contextMenu未呈现。单击鼠标2未呈现。单击鼠标2时,第一次呈现contextMenu,然后在大约1秒钟内未呈现它
<p:menuitem value="edit" update="mydialog" icon="ui-icon-pencil" oncomplete="editCompany.show()" />
<p:menuitem value="edit" disabled=#{companyController.selectedCompany eq null}.....
<p:dataTable.......>
    <p:ajax event="rowSelect" update="contextMenuID" />
    <p:ajax event="rowUnselect" update="contextMenuID" />