Hi Dan,
Thanks for the great explanation! I'll try out the divs and spans-based
approach.
Joe
Sent from my iPhone
On Dec 29, 2011, at 7:53 AM, Dan McCreary <[email protected]> wrote:
> Hi Joe,
>
> From what I know, repeats within tables are very tricky due to the way that
> tables are rendered within a browser. Browsers usually assume that they get
> an entire table from the server and they then try to calculate the correct
> layout after the </table> tag arrives. With XSLTForms we build the table
> interactively after all the data arrives in the model and this confuses most
> browsers. Since some browsers have different strategies for rendering tables
> so it is very hard to get table rendering right across all browsers.
>
> I have found the most fail-safe way to render tabular data using the <repeat>
> is to try to use a combination of divs, spans and a CSS file that will create
> fixed-with output for the cells. This can be done with Blueprint using
> "span" tags within your class attributes. I know that this is not nearly as
> easy as using the <table> tag but it is consistent across most browsers. I
> suspect that you may be able to try to use a combination of tables and
> fixed-with cell layout and get it to work on FF9 on the Mac but it may not
> work on all tables.
>
> Here is a very small example:
>
> http://en.wikibooks.org/wiki/XForms/Highlight_Selected_Row
>
> This example uses a combination of the following:
> display: inline;
> position: absolute;
> margin-left: 150px;
>
> One newer CSS structure that I have also been using is the inline-block
> property. This allows you to set the "width" on any cell. Something that
> does not work with inline layout. The problem with this is that older
> versions of IE did not support it but since you are on FF this may work out
> fine.
>
> Let me know what works and I can update the XForms wikibook.
>
> - Dan
>
> On Wed, Dec 28, 2011 at 11:30 PM, Joe Wicentowski <[email protected]> wrote:
> Hi all,
>
> I'm building a basic gradebook app for a professor I happen to know (my wife)
> using XSLTForms, and while it's been working great for most of my forms, I'm
> encountering difficulties when using <xf:repeat> inside of tables. I would
> appreciate any suggestions or troubleshooting hints folks here might have.
> I'm using XSLTForms (trunk rev. 522 from
> http://xsltforms.svn.sourceforge.net/viewvc/xsltforms/trunk/build/) with FF9
> on Mac OS X. Here's the relevant portion of my form:
>
> <div xmlns="http://www.w3.org/1999/xhtml">
> <table>
> <thead>
> <tr>
> <th>Student</th>
> <!-- one heading for the name of each assessment (i.e.,
> tests and assignments) -->
> <xf:repeat
> nodeset="instance('course')/assessments/assessment">
> <th><xf:output ref="name"/></th>
> </xf:repeat>
> <th>Final Letter Grade</th>
> </tr>
> </thead>
> <tbody>
> <!-- one row for each student record: name, grades for each
> assessment, final grade -->
> <xf:repeat nodeset="instance('students')/student"
> id="repeat-students">
> <tr>
> <td><xf:output value="concat(surname, ', ',
> forename)"/></td>
> <xf:repeat
> nodeset="instance('course')/assessments/assessment" id="repeat-assessments">
> <td><xf:input
> ref="instance('students')/student[index('repeat-students')]/course-record/assessments/assessment[index('repeat-assessments')]/grade"/></td>
> </xf:repeat>
> <td><xf:input ref="course-record/final-grade"/></td>
> </tr>
> </xf:repeat>
> </tbody>
> </table>
> </div>
>
> Here the "courses" instance contains info about each course, including
> assessments (i.e., tests and assignments), and the "students" instance
> contains info about each student's grades -- for each assessment and for the
> final grade.
>
> The result in FF9 is quite odd. Instead of a structure I would expect like:
>
> Student Test 1 Test 2 Final Letter Grade
> ----------- --------- ---------- ---------------------------
> Joe 80 81 B-
> Sue 90 91 A-
> ...
>
> I get something like:
>
> Test 1 Test 2 Final Letter Grade
> --------- --------- --------------------------
> Joe
> A- Sue Bill Harry Melinda ...
>
> Such an odd rendering suggests to me that either (1) there is a problem with
> my coding of the form (2) there is an XSLTForms issue or (3) both. I'm not
> sure which it is. When I search the list archives I see some references to
> problems XSLTForms has with tables and repeats, and Alain's suggestion to use
> the trunk version of XSLTForms and to use thead/tbody. I'm using trunk and
> using thead/tbody, so we can rule those factors out. I've also tried using
> the alternate "attributes" syntax for repeats (detailed at
> http://www.w3.org/TR/xforms/#ui.repeat.via.attrs), and the rendering of the
> form is even more unrecognizable. So I'm not sure how best to continue
> troubleshooting the issue. Could anyone suggest some ideas? I'm happy to
> provide more info.
>
> Thanks,
> Joe
> ------------------------------------------------------------------------------
> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
> infrastructure or vast IT resources to deliver seamless, secure access to
> virtual desktops. With this all-in-one solution, easily deploy virtual
> desktops for less than the cost of PCs and save 60% on VDI infrastructure
> costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
> _______________________________________________
> Xsltforms-support mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/xsltforms-support
>
>
>
>
> --
> Dan McCreary
> Semantic Solutions Architect
> office: (952) 931-9198
> cell: (612) 986-1552
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Xsltforms-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xsltforms-support