Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" xmlns:xforms="http://www.w3.org/2002/xforms"> <head> <title>XForms tip: how to dispatch events to all iterations of repeated controls</title> <xforms:model> <xforms:instance xmlns=""> <values> <value/> <value/> <value/> <value/> </values> </xforms:instance> </xforms:model> </head> <body> <!-- Iterate over all the values --> <xforms:repeat nodeset="value" id="my-repeat"> <div> <xforms:input id="my-input" ref="."> <!-- Upon receiving event "my-event", set the value of the control --> <xforms:setvalue ev:event="my-event" ref="." value="count(preceding-sibling::*) + 1"/> </xforms:input> </div> </xforms:repeat> <xforms:trigger> <xforms:label>Dispatch</xforms:label> <xforms:action ev:event="DOMActivate"> <!-- Save current index --> <xxforms:variable name="initial-index" select="index('my-repeat')"/> <!-- Iterate through all values --> <xforms:action xxforms:iterate="value"> <!-- Set index and dispatch event --> <xforms:setindex repeat="my-repeat" index="count(preceding-sibling::*) + 1"/> <xforms:dispatch name="my-event" targetid="my-input"/> </xforms:action> <!-- Restore index --> <xforms:setindex repeat="my-repeat" index="$initial-index"/> </xforms:action> </xforms:trigger> </body> </html>
This paste will be private.
From the Design Piracy series on my blog: