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

Reply via email to