- From: Mark Birbeck <mark.birbeck@x-port.net>
- Date: Tue, 8 Feb 2005 11:57:09 -0000
- To: "'Catherine Poinsignon'" <catherine.poinsignon@lombard.lu>
- Cc: <www-forms@w3.org>
Catherine, In addition to the incorrect evaluation context referred to by David, your event registration is also wrong. On the insertion, you haven't said what event you are listening for -- you've just put two event handlers inline in the xf:trigger. Try this instead: <xf:trigger> <xf:label>New meeting</xf:label> <xf:action ev:event="DOMActivate"> ... Your event handlers ... </xf:action> </xf:trigger> On the delete, you have correctly put an xf:action with an event name of 'DOMActivate', but then you've put a further @ev:event on the handler that's in the xf:action: > <xforms:action ev:event="DOMActivate"> > <xforms:delete at="index('meetings_index')" > ev:event="activate" nodeset="meeting"/> > </xforms:action> As described in the spec [1] the xf:delete will never be activated, since it is listening for the event 'activate' to appear on its parent element -- and since it is an xf:action it will never receive it (although it's also the wrong name). Remove this attribute and you should be OK (after fixing the evaluation context). Having said that, some implementations *incorrectly* process a xf:delete action that has an @ev:event on it, so without knowing what implementation you are using I can't say whether your xf:delete is being executed or not. If it *is* being executed (which is wrong), then the evaluation problem remains. If the implementation you are using does execute this, then I would still recommend that you remove the extra @ev:event, since this will prevent the action from being executed if you run your form on other processors that do not run the action, due to [1]. Regards, Mark [1] http://www.w3.org/TR/xforms/slice10.html#action-action Mark Birbeck CEO x-port.net Ltd. e: Mark.Birbeck@x-port.net t: +44 (0) 20 7689 9232 w: http://www.formsPlayer.com/ b: http://internet-apps.blogspot.com/ Download our XForms processor from http://www.formsPlayer.com/ -----Original Message----- From: www-forms-request@w3.org [mailto:www-forms-request@w3.org] On Behalf Of Catherine Poinsignon Sent: 08 February 2005 09:46 To: www-forms@w3.org Subject: How to use insert and delete actions Hi all, I am trying to use the insert and delete actions to insert a new record in my instance data or delete an existing record. Do do that, I hace the following instance : <xforms:instance id="data" nweb:pageflow-replace-data="always" nweb:primary-input-data="true"> <meetings xmlns=""> <meeting day="monday" starthour="10.00"> <title>Sample meeting</title> </meeting> </meetings> </xforms:instance> I display the record using a repeat : <xforms:repeat id="meetings_index" nodeset="meeting"> <xforms:input ref="title"> <xforms:label>Subject</xforms:label> </xforms:input> <xforms:select1 appearance="minimal" ref="@day"> <xforms:label>Day</xforms:label> <xforms:choices> <xforms:item> <xforms:label>Monday</xforms:label> <xforms:value>monday</xforms:value> </xforms:item> <xforms:item> <xforms:label>Tuesday</xforms:label> <xforms:value>tuesday</xforms:value> </xforms:item> <xforms:item> <xforms:label>Wednesday</xforms:label> <xforms:value>wednesday</xforms:value> </xforms:item> <xforms:item> <xforms:label>Thursday</xforms:label> <xforms:value>thursday</xforms:value> </xforms:item> <xforms:item> <xforms:label>Friday</xforms:label> <xforms:value>friday</xforms:value> </xforms:item></xforms:choices> </xforms:select1> <xforms:select1 ref="@starthour"> <xforms:label>Sarts hour</xforms:label> <xforms:choices> <xforms:item> <xforms:label>09.00</xforms:label> <xforms:value>09.00</xforms:value> </xforms:item> <xforms:item> <xforms:label>10.00</xforms:label> <xforms:value>10.00</xforms:value> </xforms:item> <xforms:item> <xforms:label>11.00</xforms:label> <xforms:value>11.00</xforms:value> </xforms:item> </xforms:choices> </xforms:select1> <xforms:trigger> <xforms:label>Delete</xforms:label> <xforms:action ev:event="DOMActivate"> <xforms:delete at="index('meetings_index')" ev:event="activate" nodeset="meeting"/> </xforms:action> </xforms:trigger> </div> </xforms:repeat> I wanted to add a new record by this trigger : <xforms:trigger> <xforms:label>New meeting</xforms:label> <xforms:insert at="index('meetings_index')" nodeset="meeting" position="after"/> <xforms:setvalue ref="meeting[index('meetings_index')]/title">New Meeting</xforms:setvalue> </xforms:trigger> But it does not work : neither the delete, neither the new !!! Could you please help me ? Thanks in advance... Catherine
Received on Tuesday, 8 February 2005 11:58:05 UTC