View Full Version : ondata event
mallesh
03-30-2004, 05:15 AM
Hi Antun,
In LPS 2.1 ondata event is called only once.But i want to call this event each time when i call the jsp using do request method.
<method event="onclick">
save.setQueryParams({ name:Name} ) ;
save.doRequest();
</method>
<datapointer id="id" xpath="save:/Name[1]/Myname" >
<method event="ondata">
<![CDATA[
var name = id.getNodeText();
id.selectNext();
canvas.basket.setAttribute('save',imgname);
</method>
Thanks
Mallesh
antun
03-31-2004, 10:24 AM
The ondata event does get sent whenever the data updates:
<canvas debug="true">
<dataset name="save" type="http" src="mydata.xml" request="false" />
<button>Make request
<method event="onclick">
save.doRequest();
</method>
</button>
<datapointer id="id" xpath="save:/Name[1]/Myname" >
<method event="ondata">
<![CDATA[
Debug.write( "ondata event sent" );
]]>
</method>
</datapointer>
</canvas>
Is this not what you're seeing?
-Antun
mallesh
04-06-2004, 08:22 AM
Hi Antun,
In LPS 1.0.3 "ondata" event was called each time when i call the doRequest method on a dataset but in LPS 2.1.1 on data event is called only once when the page got refresh.then it won't call the ondata event for each request.I think functionality of the ondata event is changd in LPS 2.1.1.
So I do i call the ondata event each doRequest method call ?
Thanks
Mallesh
antun
04-06-2004, 08:33 AM
Like I said in my last post, that's not what I'm seeing. I'm using 2.1.1 and the ondata event fires every time the data updates.
Can you provide a testcase?
-Antun
mallesh
04-08-2004, 02:31 AM
Hi Antun,
If i use selectNext() and slectChild() within ondata event method,the ondata does not fire each time in LPS 2.1.1 I actually tested below code both in LPS 1.0.3 and in LPS 2.1.1 .But it works fine in LPS 1.0.3.In LPS 2.1.1 it fire only once when the page got refresh.But in LPS 1.0.3, it will fire ondata event each time when i call doRequest metnod on dataset
Is there any solution for this ?
Thanks
mallesh
antun
04-08-2004, 09:38 AM
Hi Mallesh
I see what you mean. It appears to be a bug in datapointer that after it has been moved using selectNext() it doesn't listen out for an ondata event (and I have filed it).
In the meantime, one thing that you might want to try as a workaround is to not move the datapointer, but rather make XPath queries that are relative to the datapointer:
<canvas height="250" width="800" debug="true" >
<debug y="100" />
<dataset type="http" name="weatherdata"
src="test.xml"/>
<view>
<inputtext width="90" name="t">zip</inputtext>
<button> submit
<method event="onclick"> var d = canvas.datasets.weatherdata;
debug.write("sending request for weather data.");
//d.setQueryString( { zip : parent.t.getText() } );
d.doRequest();
</method>
</button>
<datapointer xpath="weatherdata:/GalleryImg/Image">
<method event="ondata">
Debug.write("INSIDE ONDATA");
var nodeName = this.getNodeName();
var imgName = this.getNodeText();
var price = this.xpathQuery( '../Price/text()' );
Debug.write("NODE :"+nodeName);
Debug.write("image :"+imgname);
Debug.write("price :"+price);
</method>
<method event="onerror">
Debug.write( "datapointer threw an error" );
</method>
</datapointer>
<simplelayout axis="x" />
</view>
</canvas>
Does that help?
-Antun
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.