0

この問題が発生しました。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>

そして、コンソールエラーは次のとおりでした:/company.xhtml @ 46,91 value = "#{companyController.selectedCompany.companyName}":Target Unreachable、'selectedCompany' return null

4

1 に答える 1

1

ダイアログIDの名前を変更してみてくださいmydialog(安全のために)

メニュー項目のエントリを次のように更新します ( に注意してくださいupdate="mydialog")。

<p:menuitem value="edit" update="mydialog" icon="ui-icon-pencil" oncomplete="editCompany.show()" />

また、テーブルでの選択が行われた後にのみ編集ボタンが有効になることを確認してください...そうしないと、ヌルポインターが取得されます...

あなたは次のようなものでそれを達成することができます

<p:menuitem value="edit" disabled=#{companyController.selectedCompany eq null}.....

テーブルに2つ追加p:ajaxします

<p:dataTable.......>
    <p:ajax event="rowSelect" update="contextMenuID" />
    <p:ajax event="rowUnselect" update="contextMenuID" />

最後に:id=contextMenuIDコンテキストメニューに追加

于 2012-07-05T05:45:16.393 に答える