Date browsers problem - if manually changed and focus on it - did not save -


i have problem related date type i'm using in smartgwt.

i set date have possibility change manually:

setattribute("usetextfield", true);  

in firefox , chrome (and maybe other browsers , except internet explorer) if first i'm selecting date pop-up calendar , change manually , let focus on date field , going save document (actually form multiple fields) date changed manually lost, date choosed calendar saved. not happening in internet explorer.

in browsers, if select calendar date , change manually , change focus everythings goes fine - manually changed date saved db. need advices.

thank lot.

later edit:

i'm using com.smartgwt.client.widgets.form.fields.dateitem widget.

dateitem date = new dateitem("a date"); date.setwidth(320); date.setwraptitle(false); date.setattribute("usetextfield", true);  date.setattribute("inputformat", "yyyy/mm/dd"); date.setattribute("displayformat", "tojapanshortdate"); 

i'm adding date on dynamicform:

dynamicform  form = new dynamicform(); form.setfields(date); 

and form on vlayout object:

vlayout editlayout = new vlayout(30); editlayout.addmember(form); 

the problem reproducing in browsers firefox & chrome when:

  1. i'm selecting first date calendar - i'm selecting 2011/02/11
  2. i'm changing day in 2011/02/12 manually - , i'm not changing focus date field
  3. i'm pressing 'save' button.

after these steps date 2011/02/11 , not 2011/02/12 how should be. in internet explorer browser did not happen - date after steps above 2011/02/12!

later edit:

i'm using datasource updating data.

i'm having userobject , in userupdate method i'm creating user object first values fields (which on dynamicform) - calling generateuserobjectfromform() method

userobject   user = generateuserobjectfromform();  

here, in method i'm doing like: user.setaddeddate(date.getvalueasdate()), here date.getvalueasdate() value 1 selected calendar, not 1 modified manually.

i've tried with:

date.getvalue() //fri feb 11 00:00:00 gmt+200 2011   date.getvaluefield() // null date.getvalueasdate() //fri feb 11 00:00:00 gmt+200 2011 date.getdisplayfield() //null date.getdisplayvalue()//l2011/02/11 

but none worked properly.

i'm using request object (userupdaterequest) updating user.

userupdaterequest looks like:


public class userupdaterequest implements isserializable {     userobject user = null;      public userupdaterequest ()     {     }      public userupdaterequest (userobject user)     {         this.user = user;     }      public userobject getuser ()     {         return user;     } } 

final userupdaterequest request = new userupdaterequest(user); 

and on rpc user update method i'm sending userupdaterequest request.

later edit (15 february):

i've discovered why happening issue related focus, , because in project i'm not using button object - , com.google.gwt.event.dom.client.clickevent it. i'm using personalized widget:

package de.vogella.gwt.helloworld.client; import com.smartgwt.client.widgets.label;  public class buttonlabel extends label {     public buttonlabel (string text, string elementid)     {         super();         setcontents(text);         setautowidth();         setbasestyle("wwhoverlabel");         setshowrollover(true);               }  } 

and use com.smartgwt.client.widgets.events.clickhandler().

anyway not know how resolve ....

i've created small project issue i've put button object (save1) , personalized button buttonlabel (save2) - both clickhandlers.

here link can download sources of small project i've created: link

case1: example choose date 2011/02/16 , change manually date 2011/02/17 , push button save1 - works fine - date remains 2011/02/17

case2-a - line window.alert("2 " + date.getvalue()); un-commented: example choose date 2011/02/16 , change manually date 2011/02/17 , push button save2 - in warning message date value 2011/02/16 in field date remains 2011/02/17

case2-b - line window.alert("2 " + date.getvalue()); uncommented: example choose date 2011/02/16 , change manually date 2011/02/17 , push button save2 - value field date automatically changed 2011/02/16

later later edit:

since can't figure out how solve problem i'm thinking moment @ temporary solution. so, have:

dateitem date = new dateitem("adate"); date.setwidth(120); date.setwraptitle(false); date.setattribute("usetextfield", true);  date.setattribute("inputformat", "yyyy/mm/dd"); date.setattribute("displayformat", "tojapanshortdate"); 

because attribute usetextfield set true can see text entry field. how can make text entry field un-editable. want have possibility choose date calendar , not change manually.

the following code should work.

dateitem date = new dateitem("adate");  date.setattribute("usetextfield", true);  date.setattribute("inputformat", "yyyy/mm/dd");  date.setattribute("displayformat", "tojapanshortdate");  textitem textitem = new textitem();  textitem.setattribute("readonly", "true");  date.settextfieldproperties(textitem); 

Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -