Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

XForms/Repeat

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Here is a simple example of how to get a list of repeating data elements out to your screen. This is done using the repeat tag and the nodeset attribute. You use the nodeset to specify where you want to begin your listing in the model. In this case we are just using a model embedded into the page. Output Here is the output for this program under the FireFox browser: Image:XForms-phone-list.jpg Note that all of the names are displayed, not just the first name. Note how we are mixing both HTML tags and XForms tags together in the body. Program <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <title>Phone List</title> <xf:model> <xf:instance xmlns="" id="phonebook"> <PhoneList> <Person> <Name>Peggy</Name> <Phone>123</Phone> </Person> <Person> <Name>Dan</Name> <Phone>456</Phone> </Person> <Person> <Name>John</Name> <Phone>789</Phone> </Person> <Person> <Name>Sue</Name> <Phone>234</Phone> </Person> </PhoneList> </xf:instance> </xf:model> </head> <body> <fieldset> <legend>Company Phone List</legend> <p><b>Name, Phone</b> <xf:repeat nodeset="Person"> <xf:output ref="Name"/>, <xf:output ref="Phone"/> </xf:repeat> </p> </fieldset> </body> </html> Discussion The key line here is the repeat statement: <xf:repeat nodeset="Person"> The repeat element has an attribute named nodeset. This tells you where in your model to get the data. In this case we will be iterating over all Person records and outputting the Name and Phone for each Person. You can also use an absolute path reference: <xf:repeat nodeset="/PhoneList/Person">As an alternative you can also use an instance reference:<xf:repeat nodeset="instance('phonebook')/Person"> Note that each repeat starts a new line for each person record. This can be turned into a clean tabular layout using a simple style sheet. You can do this by having the second output be associated with a class called "column2" and then adding a column2 formatting rule to the style sheet.Conditional Styling Bind to ranges