I presume you modified your faces-config.xml to tell JSF to use your
component instead of HtmlDataTable? Example (note, I use facelets, and
if you don't you will also probably need to subclass the tag as well):
<component>
<component-type>com.somecompany.ExtendedELTable</component-type>
<component-class>com.somecompany.ExtendedELUIData</component-class>
</component>
custom.taglib.xml:
...
<tag>
<tag-name>dataTableEl</tag-name>
<component>
<component-type>com.somecompany.ExtendedELTable</component-type>
<renderer-type>org.apache.myfaces.Table</renderer-type>
</component>
</tag>
...
Java:
public class ExtendedELUIData
extends HtmlDataTable
{
/**
* @see javax.faces.component.UIData#setFirst(int)
*/
@Override
public void setFirst(int first)
{
ValueBinding vb = getValueBinding("first");
if (vb != null)
{
vb.setValue(getFacesContext(), first);
return;
}
else
super.setFirst(first);
}
}
That should be all that you need. You can add a System.out in your
constructor to make sure you component is getting created. Also check
the logs to make sure your component is getting used.
-Andrew
On 5/1/06, agdibugdi <[EMAIL PROTECTED]> wrote:
I extended HtmlDataTable with the override function for setFirst ( as
suggested), but it never got executed.
<snip>
<x:dataTable id="resourceData" var="MR"
value="#{MR.resources}" rows="10"
columnClasses="columnspacer_5,leftcolumn,leftcolumn"
headerClass="sortHeader" rowClasses="oddrow, evenrow" width="100%"
sortColumn="#{MR.sort}"
sortAscending="#{MR.ascending}"
preserveDataModel="true" preserveSort="true"
first="#{MR.searchPageIndex}"
binding="#{MR.mrDataTable}">
</snip>
Any Help ?
Is it possible to post the code ?
Thanks a bunch,
vinod
--
View this message in context:
http://www.nabble.com/Making-sure-DataTable%27s-first-always-uses-EL-was-Re%3A-Facelets-1.0.14-causes-duplicate-IDs...-t1462743.html#a4172242
Sent from the MyFaces - Users forum at Nabble.com.