[Users] Modify record in a store

Eric Lemoine eric.lemoine at camptocamp.com
Thu Oct 1 06:41:02 CEST 2009


Hi

On Thursday, October 1, 2009, James McManus <jmpmcmanus at gmail.com> wrote:
> The id is an artifact of my experimentation. I should of left it out.
> A cleaner version would be:
>
>         var Store = new GeoExt.data.FeatureStore({
>           fields: [
>              {name: 'stfid', type: 'string'},
>              {name: 'ch_0209_r_tax_val', type: 'float'}
>           ]
>         });

The array passed to the "field" option represents the data schema of
the store, not the actual data. Use the "data" option to pass actual
data.

>         var record = Store.getAt(0);
>         record.set("name","ID");

if you want to change the value of the first record's stfid field you'll do

var record = store.getAt(0);
record.set("stfid", "ID");

Hope this helps,

>
> in which I get the error message "record is undefined".  That may mean that Store.getAt(0) is not working. Although I have not found an error.
>
> I've been looking at Ext JS documentation.  That is where I got the idea to use record.set to modify a record. However, the examples I've seen look like:
>
> var Store = new. Ext.data.Store({
>     [{name: 'stfid', type: 'string'},
>      {name: 'ch_0209_r_tax_val']
> }
>
> There is no fields, like I'm using in GeoExt.data.FeatureStore. The API for FeatureStore does not list fields as a config option. Is it inherited from Ext.data.Store?
>
> In any case I'm unsure how to work with it.
>
> Thanks
> Jim
>
> On Wed, Sep 30, 2009 at 9:50 PM, Matt Priour <mpriour at kestrelcomputer.com <javascript:_e({}, 'cvml', 'mpriour at kestrelcomputer.com');>> wrote:
>
>
>
>
>
> You've got a whole lot of things going wrong
> there.
> You should really look into the ExtJS docs
> regarding DataStores.
> http://www.extjs.com/deploy/ext-2.2/docs/?class=Ext.data.JsonStore
>
> id is a property of the store, not the field. id
> refers to the field whose value will be used as the record's id and used in
> functions like getById.
> the function record.set modifies the value found in
> the field indicated in the first parameter and changes it to the value indicated
> in the second parameter.
> Your use of it fails because you don't have a field
> named "name" .
> If you did it would change the value in that field
> in the record to the string "id"
>
> Hope that helps at least point you in the right
> direction to begin accomplishing what you are wanting to do.
>
> Matt Priour
> Kestrel Computer Consulting
>
>
>
>
> From: James McManus <javascript:_e({}, 'cvml', 'jmpmcmanus at gmail.com');>
> Sent: Wednesday, September 30, 2009 6:08 PM
> To: users at geoext.org <javascript:_e({}, 'cvml', 'users at geoext.org');>
> Subject: [Users] Modify record in a store
>
>
> Hi - I would like to
> modify a record in a store, I created using GeoExt.data.FeatureStore. The actual
> store looks like:
>
>         var store =
> new
> GeoExt.data.FeatureStore({
> fields:
> [
> {id: new Date().getTime(), name: 'stfid', type:
> 'string'},
> {id: new Date().getTime(), name: 'ch_0209_r_tax_val', type:
> 'float'}
> ]
>         });
>
> I thought I could
> modify it by doing the following:
>
> var record =
> store.getAt(0);
> record.set("name", "id");
>
> which would change stfid to
> id. But that did not work. I think it is because I'm not dealing with the
> presents of "fields".  I've tried a variety of things without
> success.  Is there a simple way of doing this?
>
> Thanks
> Jim
>
>
>
>
> _______________________________________________
> Users mailing
> list
> Users at geoext.org <javascript:_e({}, 'cvml', 'Users at geoext.org');>
> http://www.geoext.org/cgi-bin/mailman/listinfo/users
>
>
>

-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : eric.lemoine at camptocamp.com
http://www.camptocamp.com


More information about the Users mailing list