Ok, this is driving me absolutely crazy: I have a drop-down menu allowing a
user to select from a list of reports, the results of which are then
displayed in a table on the same page.  The table has paging (request scope,
through sub-selects) and sorting.  I got all this to work for one of the
reports and am now trying to get it so that when a user selects a different
report the data structures backing the table are dynamically changed.  For
this, I need a value-change event triggered by the UISelectOne component to
take place after Update Model Phase (so that I can reset the DataModel after
it has been retrieved from previous request).  Someone suggested a way to do
this using a hidden commandLink as follows:
http://www.nabble.com/Can-UISelectOne-Trigger-an-Action-Event--tf1981993.html#a5439491.

However, after I did this, all of a sudden sorting stopped working.  I
realized that the action event that used to fire when a user clicked on a
column header (to sort the data) is no longer firing (incidentally, this is
the same action event that I am now triggering when a user selects a
different report from a drop-down menu).  Searching through other posts, I
found out that sometimes the reason for this is that the component that is
suppose to queue the action event may not exist (rendered=false) during the
entire time from the first request renderResponse phase to the next
request's invokeApplication phase (see
http://www.nabble.com/actionListener-not-invoked-tf1317007.html#a3544909). 
However, since the actionListener attribute is set on the
t:commandSortHeader, I am not sure how exactly to utilize t:savestate.  Any
suggestions would be greatly appreciated.

                                <t:dataTable id="queueDetails"
                                        styleClass="recordSetTable"
                                        headerClass="resultSetTableHeader"
                                        
rowClasses="cellDataAltRow,cellDataFirstRow"
                                        var="row" 
                                        preserveDataModel="true"
                                        binding="#{workbenchForm.data}"
                                        value="#{workbenchForm.dataModel.value}"
                                        rows="#{workbenchForm.dataModel.rows}"
                                        
sortColumn="#{workbenchForm.dataModel.sortColumn}"
                                        
sortAscending="#{workbenchForm.dataModel.sortAscending}"
                                        preserveSort="true" >
                                        <t:columns id="columns" 
value="#{workbenchForm.columns}" var="column" 
>
                                                <f:facet name="header">
                                                        <t:commandSortHeader 
columnName="#{column.label}" immediate="false"
arrow="true" actionListener="#{workbenchForm.actionListener}"
styleClass="cellDataHeader">
                                                                <h:outputText 
value="#{column.label}" />
                                                        </t:commandSortHeader>
                                                </f:facet>
                                                <h:outputText 
value="#{workbenchForm.columnValue}" />
                                        </t:columns>
                                </t:dataTable>

-- 
View this message in context: 
http://www.nabble.com/Pageable-%28Through-Sub-selects%29%2C-Sortable%2C-Dynamic-Cols-dataTable-Issuue-tf1999409.html#a5489187
Sent from the MyFaces - Users forum at Nabble.com.

Reply via email to