Как отображать таблицы с помощью xforms: repeat - PullRequest
0 голосов
/ 08 июля 2011

Мне было интересно, знает ли кто-нибудь, как отображать данные с помощью XForms в табличном формате.У меня есть код, который отображает каждый тег столбца в виде строк, однако мне было интересно, как я могу отобразить каждый тег столбца в виде столбцов.Я бы хотел, чтобы мой вывод отображался так:


1 1 2
2 3 4

Я новичок в XForms и понятия не имею об основах, поэтомулюбой мог бы помочь мне, это было бы здорово.

Вот мой код:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?>
    <html xmlns="http://www.w3.org/1999/xhtml"
     xmlns:xf="http://www.w3.org/2002/xforms"
     xmlns:ev="http://www.w3.org/2001/xml-events">
     <head>
  <title>Table with CSS and Divs</title>
  <xf:model><xf:instance>
    <disp xmlns="">
       <row><col>1</col><col>2</col></row>
       <row><col>3</col><col>4</col></row>
    </disp>
  </xf:instance></xf:model>
  <style type="text/css">
    * {
  font-family: Arial, Helvetica, sans-serif;
  border-collapse: collapse;
  }
  /* example of doing layout of a table without using the HTML table tags */

  .table { 
  display:table;
   }

  .tableHeader, .tableRow, .tableFooter, .myRow  {
   display: table-row;
   }

  .leftHeaderCell, .leftCell, .leftFooterCell, 
  .rightHeaderCell, .rightCell, .rightFooterCell,
  .myCell
  {
   display:  table-cell;
   }    
 .myCell {
   padding: 5px 5px 5px 5px;
   border: solid black 2px
   }
  </style>
   </head>
   <body>
    <div class="table">

        <xf:repeat nodeset="row" id="idrow"> 
        <div class="myRow">  
            <div class="myCell"><xf:output ref="position()"/></div> 
                <xf:repeat nodeset="col" id="idcol">    
            <div class="myCell"><xf:output ref="."/></div>

             </xf:repeat>
        </div>
        </xf:repeat> 
    </div>
         </body>
       </html>

1 Ответ

0 голосов
/ 09 июля 2011

XSLTForms заменяет элементы XForms на элементы HTML (посмотрите это в отладчике).Добавление элементов DIV - проблема с вложенными повторами.

Это исправлено для структуры TABLE / TR / TD, поскольку ее легко обнаружить с помощью XSLTForms.Элементы DIV со свойствами table- * CSS не находятся в той же ситуации ...

Вот пример работы с XSLTForms:

    <body>
    <table>
        <xf:repeat nodeset="row" id="idrow"> 
            <tr>
                <td>
                    <xf:output value="position()"/>
                </td> 
                <td>
                    <table>
                        <tr>
                            <xf:repeat nodeset="col" id="idcol">    
                                <td>
                                    <xf:output ref="."/>
                                </td>
                            </xf:repeat>
                        </tr>
                    </table>
                </td>
            </tr>
        </xf:repeat> 
    </table>
</body>

-Alain

...