3

ユーザーがアプリケーションでクリックしたときにページが更新されないようにしようとし<h:commandLink>ています。私はこれを試しましたが、うまくいきません:

更新しました :

 <h:dataTable value="#{person.IssueList}" var="p" >
    <h:column style="width: 20px">
        <f:facet name="header">Issue</f:facet>
        <h:commandLink value="#{p.IssueDesc}"/>
    </h:column>

    <h:column style="width: 20px">
         <f:facet name="header">Reporting Date</f:facet>
         <p:calendar  value="#{p.issuerepDt}" rendered="#{p.editable}"                 id="CalendarId"/>                
         <h:outputText value="#{p.issuerepDt}" rendered="#{not p.editable}" />
    </h:column>

    <h:column>
            <f:facet name="header">Action</f:facet>
        <h:commandLink  value="Edit" action="#{person.editAction(p)}">
            <f:ajax execute="@form" render="@none" />          
        </h:commandLink>    

            </h:column>
    </h:dataTable>

Java スニペット:

public void  editAction(PersonIssues pIssues) {
    pIssues.setEditable(true);
}

MKyong.Iからjsfデータテーブルを編集するという概念を使用しています

4

2 に答える 2

2

listenerf:ajax代わりにのactionを使用しようとしますh:commandLink

<h:commandLink value="Edit">
    <f:ajax listener="#{person.editAction(p)}" execute="@form" render="dataTableId calendarId" />          
</h:commandLink>  

また、ajax の後にレンダリングする内容にも注意してください。

于 2012-09-28T14:59:25.530 に答える
2

カレンダーコンポーネントにprimefacesを使用していることがわかったので、primefacesコマンドボタンとデータテーブルも使用したい場合があります。primefaces のコンポーネントはすべて一緒にうまく機能します。

以下の例から、データ テーブルに ID を指定し、commandLink で update 属性を追加して、アクションが呼び出された後にデータ テーブルを更新していることがわかります。デフォルトでは、primefaces には、commandLinks で true に設定された ajax 属性があります。

<p:dataTable id="myTable" value="#{person.IssueList}" var="p" >
    <p:column style="width: 20px" headerText="Issue">
         <p:commandLink value="#{p.IssueDesc}"/>
    </p:column>

    <p:column style="width: 20px" headerText="Reporting Date">
         <p:calendar  value="#{p.issuerepDt}" rendered="#{p.editable}"                 id="CalendarId"/>                
         <h:outputText value="#{p.issuerepDt}" rendered="#{not p.editable}" />
    </p:column>

    <p:column headerText="Action">
         <p:commandLink  value="Edit" action="#{person.editAction(p)}" update="myTable"/>
    </p:column>
</p:dataTable>
于 2012-09-28T16:52:32.213 に答える