This is what I do in TypeScript (qx-typed):

I created a map of getters and setters taking advantage of closure technique
like this:

            // A function or method to add a SelectBox control
            this.addMap(name, control, util.SqlDataType.UByte, 
                (s) => ui.setSelectedIndex(control, s),                   //
setter
                () => ui.getSelectedIndex(control).toString());        //
getter

util.SqlDataType.UByte indicates the data type conversion to be taken care
of by the server-side from a string value so all getters convert to string
so that server side will only convert from string directly.

>From this technique, getting the values in the selected controls in the form
is simply done as:

               // getPars()
               names.forEach(e => {
                    for (var i = 0; i < count; i++) {
                        var par = this.pars[i];
                        if (par.Name === e) {
                            par.Value =
this.controls[this.pars[i].Name].getter();   // note the getter execution
here!
                            pars.push(par);
                            break;
                        }
                    }
                });

The JSON request is sent like this:

            util.postJson<util.RequestNewRecord, &lt;b>number*>(this,
"newrecord", {
                TableName: this.entry.tableName,
                Pars: this.entry.getPars()              // getPars retrieves
needed values from form
            }, (r) => {
                 // r is a *number *returned from server which is Id of the
new record created in table
            });
 
This technique simplifies retrieval of ready-to-send data with a single call
to getPars().





--
View this message in context: 
http://qooxdoo.678.n2.nabble.com/list-controller-does-not-update-list-tp7586693p7586695.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to