« Return to Thread: Problem refreshing Calendar component using fireAjaxTransation

Re: Problem refreshing Calendar component using fireAjaxTransation

by Dan Labrecque :: Rate this Message:

Reply to Author | View in Thread

FYI, JSF Extensions provides an ajaxZone tag which you can use to refresh multiple widgets at the same time. Visual Web Pack also provides a similar tag, named ajaxTransaction, which may be easier to use than calling DynaFaces.fireAjaxTransaction directly.

Dan

Rasha wrote:
Hello Venkatesh, 

"
When are you trying to fire an ajax rransaction? what data are you 
returning back in your ajax response?"


Well here is my initial requirement: 
I have a field called ID where the user inserts the ID of the object he is
trying to retrieve. 
When the user leaves the textfield (onChange) I want to submit the value of
the ID asynchroneously to the server. AFTER the ID being submitted and the
object being fetched on the server side, I want to asynchroneously update
MULTIPLE components on the page at the SAME time. 

The thing is, the current implementations on submit and refresh do not allow
me to achieve this behavior. 
In fact, myNode.submit(field1, field2) will submit field1 and field2 while
submitting myNode; and myNode.refresh('field1 , field12') will submit field1
and field2 while refreshing myNode.
There does not seem to be a way to refresh field1 and field2while submitting
myNode.

Moreover if I do: myNode.submit(); field1.refresh(); field2.refresh() : this
does not garantee that field1 and field2 will wait till myNode has been
submitted before attempting a refresh ... 

This is why I dropped using refresh and submit provided by woodstock
components and opted for fireAjaxTransaction wich allow me to specify which
components to submit and which ones to refresh in a single call. 


"Also, are you giving the id of the calendarfield widget or the calendar 
widget?"

No I am actually sending the id of the whole calendar. 

Thanks a lot! 
Rasha


Venkatesh Babu-5 wrote:
  
Hi Rasha,

When are you trying to fire an ajax rransaction? what data are you 
returning back in your ajax response?
Also, are you giving the id of the calendarfield widget or the calendar 
widget?

The code you are referring to :

webui.@... = function(props)
{
    // Check whether the calendar associated with this particular 
calendarField
    // broadcasted the event.
    if (props.date != null && props.id == this.calendar.id) {
        // Set the selected date on the field.
        this.domNode.setProps({value: props.date});
    }
    return false;
}

this.domNode refers to the calendarField widget's dom element.

Try appending the "?debug" parameter to your url
This will help you get a more meaningful error.

You can also try using  firebug to get more information.

-venky
Rasha wrote:
    
Below is a code snippet on how I am trying to update my components
asynchroneously using fireAjaxTransaction: 


DynaFaces.fireAjaxTransaction(this, { execute: 'IdOfComponentToSubmit',
render:'IdOfComponentToRender'}); 

When IdOfComponentToRender is that of a textfield, table, button etc...
there is no problem and everything works correctly . 
But When IfOfComponentToRender is that of a calendar, although the
refresh
takes place correctly, whenever I attempt to pick another day from the
calendar, I get a javascript error saying: this.domNode is null. 
I followed the javascript code for the calendar component, and this could
be
taking place in the calendarField.js file at: 
webui.suntheme.widget.calendarField.dayClicked=function(_1){ 
if(_1.date!=null&&_1.id==this.calendar.id){ 
this.domNode.setProps({value:_1.date}); 
} 

Is there something I'm doing wrong, or is this a bug in the Calendar
component? 
Thanks. 
Rasha 
  
      
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...



    

  

 « Return to Thread: Problem refreshing Calendar component using fireAjaxTransation