coderxyz24
coderxyz24

Reputation: 11

How can I update p:column in p:panelgrid?

I'm having problems in update of my panelgrid columns Below is my code in my xhtml file, datatable in treatmenthistory.xhtml is updated fine but searchresult.xhtml is not updated and you have to refresh the whole page to make it updated. So what can be the problem, two xhtml pages look like same, they both have datatables.

        <h:form>
            <p:panelGrid cellpadding="0" styleClass="results">
                <p:row>
                    <p:column colspan="1">
                        <ui:include src="/searchresult.xhtml" />
                    </p:column>
                    <p:column colspan="1">
                        <ui:include src="/treatmenthistory.xhtml" />
                    </p:column>
                </p:row>
            </p:panelGrid>
        </h:form>

users:

<ui:composition xmlns="w3.org/1999/xhtml" xmlns:f="java.sun.com/jsf/core"  xmlns:h="java.sun.com/jsf/html" xmlns:ui="java.sun.com/jsf/facelets" xmlns:p="primefaces.org/ui">
    <p:dataTable id="users" var="user1" styleClass="searchResult"
        widgetVar="userTable" value="#{KisiInfoProcess.kisiList}"
        emptyMessage="#{msg['noRecordsFound']}" dynamic="true"
        paginator="true" rows="10" rowKey="#{user1.tcidno}"
        rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'highlight1' : 'highlight2'}"
        rowIndexVar="rowIndex" selection="#{KisiInfoProcess.selectedOS}"
        selectionMode="single" paginatorPosition="bottom">
        <p:ajax event="rowSelect" listener="#{KisiInfoProcess.onRowSelect}"
            process="@this" update=":form:users2" />
        <f:facet name="header">
            <h:outputText value="#{msg['searchResultsPanel']}" />
        </f:facet>
        <p:column id="kisiid" sortBy="#{user1.kisiid}"
            filterBy="#{user1.kisiid}" styleClass="kisiid">

            <h:outputText value="#{user1.kisiid}" />
            <p:watermark for="@(.kisiid)" value="#{msg['protocolNo']}" />

        </p:column>
        <p:column id="ad" sortBy="#{user1.ad}" filterBy="#{user1.ad}"
            styleClass="ad">

            <h:outputText value="#{user1.ad}" />
            <p:watermark for="@(.ad)" value="#{msg['name']}" />

        </p:column>
        <p:column id="soyad" sortBy="#{user1.soyad}"
            filterBy="#{user1.soyad}" styleClass="soyad">

            <h:outputText value="#{user1.soyad}" />
            <p:watermark for="@(.soyad)" value="#{msg['surname']}" />

        </p:column>
        <p:column sortBy="#{user1.tcidno}" styleClass="tcidno"
            filterBy="#{user1.tcidno}" id="tcidno">

            <h:outputText value="#{user1.tcidno}" />
            <p:watermark for="@(.tcidno)" value="#{msg['identityNumber']}" />

        </p:column>
        <p:column sortBy="#{user1.ogrencino}" styleClass="ogrencino"
            filterBy="#{user1.ogrencino}" id="ogrencino">

            <h:outputText value="#{user1.ogrencino}" />
            <p:watermark for="@(.ogrencino)" value="#{msg['studentNumber']}" />

        </p:column>
        <p:column sortBy="#{user1.dogumtarihi}" styleClass="dogumtarihi"
            filterMatchMode="contains" filterBy="#{user1.dogumtarihi}"
            id="dogumtarihi">

            <h:outputText value="#{user1.dogumtarihi}">
                <f:convertDateTime type="date" pattern="dd/MM/yyyy" />
            </h:outputText>
            <p:watermark for="@(.dogumtarihi)" value="#{msg['dateOfBirth']}" />

        </p:column>

        <f:facet name="footer">
            <p:commandButton id="modalDialogButton" style="min-width:8%"
                value="#{msg['newPatient']}"
                action="#{KisiInfoProcess.resetHastakayit}" update=":form:basic"
                oncomplete="PF('dlg2').show()" />
        </f:facet>
    </p:dataTable>
</ui:composition>

users2:

<ui:composition xmlns="w3.org/1999/xhtml" xmlns:f="java.sun.com/jsf/core" xmlns:h="java.sun.com/jsf/html" xmlns:ui="java.sun.com/jsf/facelets" xmlns:p="primefaces.org/ui">
    <p:growl id="msgs" showDetail="true" />
    <p:dataTable id="users2" var="user" styleClass="patienthistory"
        emptyMessage="#{msg['noRecordsFound']}" widgetVar="muayeneTable"
        value="#{KisiInfoProcess.muayeneList}" dynamic="true"
        selection="#{KisiInfoProcess.selectedOS}" paginator="true" rows="10"
        rowKey="#{user.muayeneid2}"
        rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'highlight1' : 'highlight2'}"
        rowIndexVar="rowIndex" selectionMode="single"
        paginatorPosition="bottom">
        <p:ajax event="rowSelect"
            listener="#{KisiInfoProcess.onRowSelectMuayene}" process="@this"
            update=":form:panel2,:form:protocolNo"
            oncomplete="PF('dlg3').show()" />
        <f:facet name="header">
            <h:outputText value="#{msg['treatmentHistoryPanel']}" />
        </f:facet>
        <p:column sortBy="#{user.muayeneid2}" styleClass="muayeneid"
            filterBy="#{user.muayeneid2}" id="muayeneno2">

            <h:outputText value="#{user.muayeneid2}" style="width:5%" />
            <p:watermark for="@(.muayeneid)" value="#{msg['treatmentNo']}" />

        </p:column>
        <p:column sortBy="#{user.muayeneturuid2}" styleClass="muayeneturu"
            filterBy="#{user.muayeneturuid2}" id="muayeneturuid2">

            <h:outputText value="#{user.muayeneturuid2}" style="width:5%" />
            <p:watermark for="@(.muayeneturu)" value="#{msg['treatmentType']}" />

        </p:column>
        <p:column sortBy="#{user.tarih}" styleClass="tarih"
            filterMatchMode="contains" filterBy="#{user.tarih}" id="tarih">

            <h:outputText value="#{user.tarih}" style="width:5%">
                <f:convertDateTime type="both" pattern="dd/MM/yyyy - HH:mm" />
            </h:outputText>
            <p:watermark for="@(.tarih)" value="#{msg['treatmentDate']}" />

        </p:column>
        <p:column sortBy="#{user.islemiyapan}" styleClass="islemiyapan"
            filterMatchMode="contains" filterBy="#{user.islemiyapan}"
            id="userid2">

            <h:outputText value="#{user.islemiyapan}" style="width:5%" />
            <p:watermark for="@(.islemiyapan)" value="#{msg['treatmentDoctor']}" />

        </p:column>
        <p:column id="tanivarmi">

            <h:outputText style="width:5%" value="#{user.taniVarmi2}" />

        </p:column>
        <f:facet name="footer">
            <p:commandButton id="modalDialogButton2" style="min-width:8%"
                rendered="#{KisiInfoProcess.kisiSelected}"
                value="#{msg['newTreatment']}"
                action="#{KisiInfoProcess.resetMuayene}" update=":form:basic2"
                oncomplete="PF('dlg3').show()" />
        </f:facet>
    </p:dataTable>
</ui:composition>

Upvotes: 0

Views: 2630

Answers (2)

coderxyz24
coderxyz24

Reputation: 11

I solved my own problem, I removed

RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.execute("PF('userTable').clearFilters()");

now I have another problem I have to clear filter of datatable

@DijanaCukic Thanks Dijana for spending your time to solve my problem

Upvotes: 0

Dijana Cukic
Dijana Cukic

Reputation: 196

<p:panelGrid cellpadding="0" styleClass="results" id="someID">

And then when you do some action to change your dataTable's, set Update="someID" to refresh both pages. SomeID is your full id "someNameContainer:someID"

If you have one action to update both tables don't forget tu put process="idfirstTatbe idSecondTable" to process them both before update.

Upvotes: 1

Related Questions