The autoscroll.jsf example is flawed because it uses only h:commandLink,
and does not test t:commandLink. Most Tomahawk components internally use
t:commandLink. This is a problem for you because the combination of
Myfaces Core 1.1.4 and Tomahawk 1.1.4/1.1.5 breaks AUTO_SCROLL for
t:commandLink, as I reported in JIRA [1]. Due to this bug (and I think
others since then), These versions have been marked incompatible as you
can see here. [2]
The bad news is, you have to move to Core 1.1.5 if you want auto_scroll
fully working with Tomahawk 1.1.5. The good news is, I have tested this
combination at it works! (Core 1.1.5 also works with Tomahawk 1.1.4 RC)
[1] http://issues.apache.org/jira/browse/TOMAHAWK-713
[2] http://wiki.apache.org/myfaces/CompatibilityMatrix
Regards,
Jeff Bischoff
Kenneth L Kurz & Associates, Inc.
mjovanov wrote:
I'm using My Faces 1.1.4 and Tomahawk 1.1.5 SNAPSHOT. I thought about that
too, but I was able to get the autoscroll.jsf example (from
myfaces-example-simple app) to work inside my application so I though that
ruled out that possibility.
Jeff Bischoff wrote:
Mjovanov,
I'm not done reading this yet, but one more thing:
What versions of MyFaces and Tomahawk are you using? Certain
combinations break autoscroll.
mjovanov wrote:
Sure, here it is (bare with me, it's a little long):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a="http://halo.jpmchase.net/jsf">
<ui:composition template="/WEB-INF/layout/layout.xhtml">
<ui:define name="title">
#{msg.globalTitle}
</ui:define>
<ui:define name="content">
<h:form id="searchResults">
<h:panelGrid columns="1">
<h:outputText
value="#{msg.pageTitleSearchResults}"
styleClass="txtContentHeader"/>
</h:panelGrid>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><h:commandLink action="searchView"
immediate="true">
<h:outputText value="Return to
Search/View page" />
</h:commandLink>
</td>
</tr>
<!-- Subject No Results Found -->
<t:htmlTag value="div"
rendered="#{subjects.searched and empty
subjects.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No
Subject
Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Case No Results Found -->
<t:htmlTag value="DIV"
rendered="#{cases.searched and empty
cases.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No Case
Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Event No Results Found -->
<t:htmlTag value="div"
rendered="#{events.searched and empty
events.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No Event
Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Facility No Results Found -->
<t:htmlTag value="div"
rendered="#{facilities.searched and empty
facilities.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No
Facility
Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Suspect Account Matches No Results
Found -->
<t:htmlTag value="div"
rendered="#{suspectAccountMatches.searched
and
empty suspectAccountMatches.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No
Suspect
Account Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- SARs No Results Found -->
<t:htmlTag value="div"
rendered="#{sARs.searched and empty
sARs.rows}"
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No SAR
Match
Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Tranactions No Results Found -->
<t:htmlTag value="div"
rendered="#{transactions.searched and empty
transactions.rows}" >
<TR><t:htmlTag value="TD"
styleClass="txtNoSearchResults">No
Transaction Match Results Found</t:htmlTag></TR>
</t:htmlTag>
<!-- Subject header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty subjects.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">Subject
Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{subjects.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="subjectDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{subjects.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{subjects.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{subjects.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{subjects.showDataScroller}">
<a:paginatorMessage dataTable="subjectDetails"
messageFormat="short" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{subjects.showDataScroller}">
<a:paginator dataTable="subjectDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Subject results
-->
<tr>
<td>
<t:dataTable
id="subjectDetails" styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false"
var="row" preserveDataModel="false"
binding="#{subjects.data}" value="#{subjects.rows}"
rows="#{subjects.numOfRowsToDisplay}"
sortColumn="#{subjects.sortColumn}"
sortAscending="#{subjects.sortAscending}" preserveSort="true">
<a:column
entity="${row}" fieldName="id" label="ID # "
backingBean="${subjects}" linkAction="S"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="formattedNames"
collection="true" label="Name" backingBean="${subjects}"
columnStyleClass="resultSetTableCells"/>
<t:column
id="address">
<f:facet name="header">
<t:commandSortHeader columnName="address" arrow="true"
actionListener="#{subjects.sortChanged}"
styleClass="cellDataHeader">
<h:outputText value="Address" />
</t:commandSortHeader>
</f:facet>
<t:dataList
id="addressList_datalist" var="address"
value="${row.addresses}">
<h:outputText value="#{address.address1}" rendered="#{not
empty
address.address1}"/>
<h:outputText value="#{address.address2}"
rendered="#{not empty address.address2}">
<t:htmlTag value="br" />
</h:outputText>
<h:outputText value="#{address.city}" rendered="#{not empty
address.city}">
<t:htmlTag value="br" />
</h:outputText>
<h:outputText value=", #{address.state} "
rendered="#{not empty address.state}" />
<h:outputText value=" #{address.zipCode}"
rendered="#{not empty address.zipCode}" />
<t:htmlTag value="br" />
<t:htmlTag value="br" rendered="{not empty address}"/>
</t:dataList>
</t:column>
<a:column
entity="${row}" fieldName="attributeList"
label="Attributes" collection="true" backingBean="${subjects}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="type" label="Type"
backingBean="${subjects}" columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- Case header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty cases.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">Case
Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{cases.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="caseDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{cases.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{cases.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{cases.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{cases.showDataScroller}">
<a:paginatorMessage dataTable="caseDetails"
messageFormat="short"
/>
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{cases.showDataScroller}">
<a:paginator dataTable="caseDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Case results -->
<tr>
<td>
<t:dataTable
id="caseDetails" styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false" var="row" preserveDataModel="false"
binding="#{cases.data}" value="#{cases.rows}"
rows="#{cases.numOfRowsToDisplay}"
sortColumn="#{cases.sortColumn}"
sortAscending="#{cases.sortAscending}" preserveSort="true">
<a:column
entity="${row}" fieldName="id" label="Case Number"
backingBean="${cases}" linkAction="C"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="name" label="Case Name"
backingBean="${cases}" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="type"
secondaryFieldName="keyword" label="Case Type" backingBean="${cases}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="subType"
secondaryFieldName="keyword" label="Case Sub Type" backingBean="${cases}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="workgroup"
secondaryFieldName="keyword" label="Workgroup" backingBean="${cases}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="status"
secondaryFieldName="keyword" label="Status" backingBean="${cases}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="disposition"
secondaryFieldName="keyword" label="Disposition" backingBean="${cases}"
columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- Event header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty events.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">
<h:outputText value="Event
Results"
rendered="#{events.generalEvents}"/>
<h:outputText value="IFS/CIP
Event Results"
rendered="#{events.onlyIFSCIP}"/>
</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{events.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="eventDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{events.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{events.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{events.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{events.showDataScroller}">
<a:paginatorMessage dataTable="eventDetails"
messageFormat="short" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{events.showDataScroller}">
<a:paginator dataTable="eventDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Event results -->
<tr>
<td>
<t:dataTable
id="eventDetails" styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false" var="row" preserveDataModel="false"
binding="#{events.data}" value="#{events.rows}"
rows="#{events.numOfRowsToDisplay}"
sortColumn="#{events.sortColumn}"
sortAscending="#{events.sortAscending}" preserveSort="true" >
<!-- Common columns -->
<a:column
entity="${row}" fieldName="id" label="Event Number"
backingBean="${events}" linkAction="E"
columnStyleClass="resultSetTableCells" />
<!-- Mixed or General columns -->
<a:column
entity="${row}" fieldName="type" label="Event Type"
secondaryFieldName="keyword" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<a:column
entity="${row}" fieldName="subType" label="Event
SubType" secondaryFieldName="keyword" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<a:column
entity="${row}" fieldName="date" label="Event Date"
backingBean="${events}" dateFormat="short" datePattern="MM/dd/yyyy"
columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<a:column
entity="${row}" fieldName="name" label="Name"
backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<a:column
entity="${row}" fieldName="status" label="Status"
secondaryFieldName="keyword" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<a:column
entity="${row}" fieldName="disposition"
secondaryFieldName="keyword" label="Disposition" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="#{events.generalEvents}"/>
<!-- IFS/CIP only columns -->
<a:column
entity="${row}" fieldName="workgroup"
secondaryFieldName="keyword" label="Workgroup" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="${events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="cipInvestigatorName"
label="CIP Investigator Name" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="${events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="SSN" label="Customer
SSN/TIN" backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="${events.onlyIFSCIP}"/>
<!-- CIP only columns -->
<t:column
id="alertAge" rendered="${events.onlyIFSCIP}">
<f:facet name="header">
<t:commandSortHeader columnName="alertAge" arrow="true"
actionListener="#{events.sortChanged}"
styleClass="cellDataHeader">
<h:outputText value="Greatest Alert Age" />
</t:commandSortHeader>
</f:facet>
<h:outputText value="#{row.alertAge}"
rendered="#{not empty row.alertAge and not
row.alertAgeNA
and
not row.alertAgeClosed}" />
<h:outputText value="N/A"
rendered="#{row.alertAgeNA}" />
<h:outputText value="Closed"
rendered="#{row.alertAgeClosed}" />
</t:column>
<!-- IFS only columns -->
<t:column
id="eventAge" rendered="${events.onlyIFSCIP}">
<f:facet name="header">
<t:commandSortHeader columnName="eventAge" arrow="true"
actionListener="#{events.sortChanged}"
styleClass="cellDataHeader">
<h:outputText value="Event Age" />
</t:commandSortHeader>
</f:facet>
<h:outputText value="#{row.eventAge}"
rendered="#{not empty row.eventAge and not
row.eventAgeNA
and
not row.eventAgeClosed}" />
<h:outputText value="N/A"
rendered="#{row.eventAgeNA}" />
<h:outputText value="Closed"
rendered="#{row.eventAgeClosed}" />
</t:column>
<!-- IFS/CIP only columns -->
<a:column entity="${row}" fieldName="applicationClassCode"
label="Application Class Code" backingBean="${events}"
columnStyleClass="resultSetTableCells"
renderValue="#{events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="bankNumber" label="Bank
Number" backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="#{events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="lob1" label="LOB1"
backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="#{events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="lob2" label="LOB2"
backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="#{events.onlyIFSCIP}"/>
<a:column
entity="${row}" fieldName="eciNumber" label="ECI
Number" backingBean="${events}" columnStyleClass="resultSetTableCells"
renderValue="#{events.onlyIFSCIP}"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- Facility header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty facilities.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">Facility
Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{facilities.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="facilityDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right" >
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{facilities.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{facilities.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{facilities.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{facilities.showDataScroller}">
<a:paginatorMessage dataTable="facilityDetails"
messageFormat="short" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{facilities.showDataScroller}">
<a:paginator dataTable="facilityDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Facility results
-->
<tr>
<td>
<t:dataTable
id="facilityDetails" styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false" var="row" preserveDataModel="false"
binding="#{facilities.data}" value="#{facilities.rows}"
rows="#{facilities.numOfRowsToDisplay}"
sortColumn="#{facilities.sortColumn}"
sortAscending="#{facilities.sortAscending}"
preserveSort="true">
<a:column
entity="${row}" fieldName="id" label="Facility ID"
backingBean="${facilities}" linkAction="F"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="name" label="Facility
Name"
backingBean="${facilities}" columnStyleClass="resultSetTableCells"/>
<t:column
id="address1">
<f:facet name="header">
<t:commandSortHeader columnName="address" arrow="true"
actionListener="#{facilities.sortChanged}"
styleClass="cellDataHeader">
<h:outputText value="Address" />
</t:commandSortHeader>
</f:facet>
<h:outputText value="#{row.address}" rendered="#{not empty
row.address}" />
<h:outputText value="#{row.city}" rendered="#{not empty
row.city}">
<t:htmlTag value="br" />
</h:outputText>
<h:outputText value=", #{row.state} "
rendered="#{not empty row.state}" />
<h:outputText value=" #{row.zip}"
rendered="#{not empty row.zip}" />
</t:column>
<a:column
entity="${row}" fieldName="country" label="Country"
backingBean="${facilities}" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="status" label="Status"
backingBean="${facilities}" columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- Suspect Account Match header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty suspectAccountMatches.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">Suspect
Account Match Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{suspectAccountMatches.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="suspectAccountMatchDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio
value="#{suspectAccountMatches.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem
itemValue="#{suspectAccountMatches.noPaginationConst}" itemLabel="No
pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{suspectAccountMatches.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{suspectAccountMatches.showDataScroller}">
<a:paginatorMessage dataTable="suspectAccountMatchDetails"
messageFormat="short" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{suspectAccountMatches.showDataScroller}">
<a:paginator dataTable="suspectAccountMatchDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Suspect Account Match
results -->
<tr>
<td>
<t:dataTable
id="suspectAccountMatchDetails"
styleClass="recordSetTable" headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false" var="row" preserveDataModel="false"
binding="#{suspectAccountMatches.data}"
value="#{suspectAccountMatches.rows}"
rows="#{suspectAccountMatches.numOfRowsToDisplay}"
sortColumn="#{suspectAccountMatches.sortColumn}"
sortAscending="#{suspectAccountMatches.sortAscending}"
preserveSort="true">
<a:column
entity="${row}" fieldName="eventNumber" label="Event
Number" backingBean="${suspectAccountMatches}" linkAction="E"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="subjectName"
label="Subject
Name" backingBean="${suspectAccountMatches}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="customerPrimaryNameList"
label="Primary Name" collection="true"
backingBean="${suspectAccountMatches}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="individualDimKey"
label="DIM"
backingBean="${suspectAccountMatches}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="customerSsnTinList"
label="SSN/TIN" collection="true" backingBean="${suspectAccountMatches}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="customerDobList"
label="DOB"
collection="true" backingBean="${suspectAccountMatches}"
dateFormat="short"
datePattern="MM/dd/yyyy" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="matchType" label="Match
Type"
backingBean="${suspectAccountMatches}" secondaryFieldName="keyword"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="matchScore" label="Match
Score" backingBean="${suspectAccountMatches}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="matchStatus" label="Match
Status" backingBean="${suspectAccountMatches}"
secondaryFieldName="keyword"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="matchDate" label="Match
Date"
backingBean="${suspectAccountMatches}" dateFormat="short"
datePattern="MM/dd/yyyy" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="lineOfBusiness"
label="LOB"
backingBean="${suspectAccountMatches}" secondaryFieldName="keyword"
columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- SAR header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty sARs.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th align="center">SAR
Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{sARs.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="sARDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{sARs.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{sARs.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{sARs.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{sARs.showDataScroller}">
<a:paginatorMessage dataTable="sARDetails"
messageFormat="short"
/>
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{sARs.showDataScroller}">
<a:paginator dataTable="sARDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- SAR results -->
<tr>
<td>
<t:dataTable
id="sARDetails" styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false" var="row" preserveDataModel="false"
binding="#{sARs.data}" value="#{sARs.rows}"
rows="#{sARs.numOfRowsToDisplay}"
sortColumn="#{sARs.sortColumn}"
sortAscending="#{sARs.sortAscending}" preserveSort="true">
<a:column
entity="${row}" fieldName="caseNumber" label="Case
Number" backingBean="${sARs}" linkAction="C"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="caseName" label="Case
Name"
backingBean="${sARs}" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="status" label="Status"
secondaryFieldName="keyword" backingBean="${sARs}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="filedDate" label="Date
Filed"
backingBean="${sARs}" dateFormat="short" datePattern="MM/dd/yyyy"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="dueDate" label="Due Date"
backingBean="${sARs}" dateFormat="short" datePattern="MM/dd/yyyy"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="lob" label="LOB"
secondaryFieldName="keyword" backingBean="${sARs}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="facilityName"
label="Facility" backingBean="${sARs}"
columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
<!-- Transaction header -->
<t:htmlTag value="div"
styleClass="tablePagingControls"
rendered="#{not
empty transactions.rows}" >
<table border="1" cellspacing="0"
cellpadding="0" width="100%">
<th
align="center">Transaction Results</th>
<tr>
<td>
<h:panelGrid columns="2"
cellspacing="0" cellpadding="0"
width="100%">
<h:panelGrid
columns="1" >
<t:htmlTag
value="br" />
<t:htmlTag
value="br" />
<h:panelGrid
align="left">
<h:commandLink action="#{transactions.exportToExcel}"
class="linkCaption">
<t:graphicImage url="images/icon_excel.gif"
alt="#{msg.labelExportSearchResultsToExcel}" width="21"
height="16" />
<h:outputText value="#{msg.labelExportSearchResultsToExcel}"
/>
</h:commandLink>
</h:panelGrid>
<h:panelGrid
align="left">
<a:paginatorMessage dataTable="transactionDetails" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="1"
cellspacing="0" cellpadding="0"
align="right">
<h:panelGrid
columns="2" align="right">
<h:selectOneRadio value="#{transactions.resultsPerPage}">
<f:selectItem itemValue="25" itemLabel="25" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="#{transactions.noPaginationConst}"
itemLabel="No pagination" />
</h:selectOneRadio>
<h:commandButton value="Apply"
action="#{transactions.resultsPerPageChanged}" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{transactionss.showDataScroller}">
<a:paginatorMessage dataTable="transactionDetails"
messageFormat="short" />
</h:panelGrid>
<h:panelGrid
columns="2" align="right"
rendered="#{transactions.showDataScroller}">
<a:paginator dataTable="transactionDetails" />
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</td>
</tr>
<!-- Transaction results
-->
<tr>
<td>
<t:dataTable
id="transactionDetails"
styleClass="recordSetTable"
headerClass="resultSetTableHeader"
rowClasses="cellDataAltRow,cellDataFirstRow"
renderedIfEmpty="false"
var="row"
preserveDataModel="false"
binding="#{transactions.data}"
value="#{transactions.rows}"
rows="#{transactions.numOfRowsToDisplay}"
sortColumn="#{transactions.sortColumn}"
sortAscending="#{transactions.sortAscending}"
preserveSort="true">
<a:column
entity="${row}" fieldName="caseNumber" label="Case
Number" backingBean="${transactions}" linkAction="C"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="id" label="Transaction Id"
backingBean="${transactions}" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="subjectName"
label="Subject
Name" backingBean="${transactions}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="adjustmentAmount"
label="Adjustment Amount" backingBean="${transactions}"
currencyPattern="'$'#,##0.00;(#,##0.00)"
columnStyleClass="resultSetTableCellsAlignRight"/>
<a:column
entity="${row}" fieldName="adjustmentType"
secondaryFieldName="keyword" label="Adjustment Type"
backingBean="${transactions}" columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="transactionDate"
label="Transaction Date" backingBean="${transactions}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="generalLedger"
label="General
Ledger" backingBean="${transactions}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="costCenter" label="Cost
Center" backingBean="${transactions}"
columnStyleClass="resultSetTableCells"/>
<a:column
entity="${row}" fieldName="source"
secondaryFieldName="keyword" label="Source" backingBean="${transactions}"
columnStyleClass="resultSetTableCells"/>
</t:dataTable>
</td>
</tr>
</table>
</t:htmlTag>
</tbody>
</table>
</h:form>
</ui:define>
</ui:composition>
</html>
Jeff Bischoff wrote:
Can you show us page code?
mjovanov wrote:
Thanks for the tip Jeff, I did set AUTO_SCROLL to true but
unfortunately
it
still doesn't work; it works for a simple examples with hrefs but not
in
my
case with multiple data tables and sorting.
No error message either; any clues?
Jeff Bischoff wrote:
This is a MyFaces feature called AUTO_SCROLL. You can set it in your
web.xml
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
mjovanov wrote:
Hi, we have several Data Table components stacked on the same page;
if
a
user
scrolls down to view one of the Data Tables towards the bottom of the
page
and then clicks on its column to perform a sort, the page is
refreshed
and
he/she is taken back to the top of the page. I was just wondering if
there
is a way to automatically scroll to a component on the page on which
the
sort was performed (perhaps using anchors)?
http://www.nabble.com/file/6191/searchResults.xhtml searchResults.xhtml