Ho un requisito specifico in cui devo aggiornare un dataTable
per l'evento onchange
di un selectOneMenu
ma sembra che il dataTable non venga aggiornato. Ho provato ad utilizzare la funzione triggerChange()
, senza fortuna. Si prega di trovare il codice qui sotto che ho provato.triggerChange() non funzionante in JSF?
xhtml
<p:selectOneMenu id="id" style="width:250px"
value="#{priceCharterMBean.traffic.id}"
required="true"
requiredMessage="Traffic is required"
filter="true"
filterMatchMode="startsWith"
widgetVar="w_menu"
onchange="updateTable();">
<p:ajax event="change" process="@this"
listener="#{priceCharterMBean.loadTEI}"
update="aTEModelList"
immediate="true"
partialSubmit="true" />
<f:selectItem itemLabel="Select" itemValue=""
noSelectionOption="true" />
<f:selectItems value="#{priceCharterMBean.trafficModelList}"
var="traffic" itemLabel="#{traffic.loadTrafficList}"
itemValue="#{traffic.id}" />
</p:selectOneMenu>
<p:dataTable style="width:350px" id="aTEModelList" var="aTEModelList" value="#{priceCharterMBean.aTEModelList}" rowKey="#{aTEModelList.id}">
<p:column style="display: none">
<f:facet name="header">
<h:outputText value="Expense Id" />
</f:facet>
<h:outputText id="expId" value="#{aTEModelList.id}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Expense Short Description" title="#{text.expenseshortdescription}" />
</f:facet>
<h:outputText id="expenseShortDesc" value="#{aTEModelList.expenseShortDescription}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Actual Expense Value" title="#{text.actualexpensevalue}" />
</f:facet>
<h:inputText id="actualTrafficExpense" maxlength="8" value="#{aTEModelList.actualTrafficExpense}" />
</p:column>
</p:dataTable>
JavaScript
function updateTable() {
w_menu.triggerChange();
}
La funzione di cui sopra non viene chiamato, ed i valori nella dataTable rimangono invariate anche, io modificare il valore nella cadere in picchiata.
Grazie mille, Hatem !! :) –
Prego. –