Hi Pichai,

I had tried to use a resultset for a Data Table too, but was never able to get it to work. Once I switched to another data model, it worked instantly. The Apache site still says that the ResultSet isn't yet supported.

From:
http://myfaces.apache.org/tomahawk/extDataTable.html:

What data types are supported?

To be able to save the state of the DataModel the row objects must be serializable. All standard DataModel types are supported, except ResultSet, which will follow in one of the next releases,


HTH

    Mike



Pichai Ongvasith wrote:
Hello,

I tried to use a ResultSetDataModel as the data model for <t:dataTable>, with myfaces1.1.1. It turns out that the result never shows up in the table.
My guess is that this might be related to Jira issue MYFACES-278.

Looking into the source code, I guess HtmlTableRendererBase.encodeInnerHtml is doing the job to render the result set.
this is the excerpt of relevant code.
       int first = uiData.getFirst();
       int rows = uiData.getRows();
       int rowCount = uiData.getRowCount();
       if (rows <= 0)
       {
           rows = rowCount - first;
       }
       int last = first + rows;
       if (last > rowCount)
           last = rowCount;

       for (int i = first; i < last; i++)
       {                       // render
       }

If that's true, the method might be mishandling the uiData.getRowCount.
The implementation of ResultSetDataModel.getRowCount in myfaces1.1.1 always return -1, which is valid when the row count is unknown at the time. So before the rendering loop, last is always -1, and nothing would be rendered.

Or am I missing something here?

pichai




Reply via email to