X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..e9397f91ede62d446aed37d23256e8938fc4c335:/docs/source/DataField.html?ds=inline diff --git a/docs/source/DataField.html b/docs/source/DataField.html index 8890e8ad..a878ed03 100644 --- a/docs/source/DataField.html +++ b/docs/source/DataField.html @@ -1,118 +1,67 @@ - -
-/** + + + +The source code + + + + +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** * @class Ext.data.Field *This class encapsulates the field definition information specified in the field definition objects * passed to {@link Ext.data.Record#create}.
*Developers do not need to instantiate this class. Instances are created by {@link Ext.data.Record.create} * and cached in the {@link Ext.data.Record#fields fields} property of the created Record constructor's prototype.
*/ -Ext.data.Field = function(config){ - if(typeof config == "string"){ - config = {name: config}; - } - Ext.apply(this, config); - - if(!this.type){ - this.type = "auto"; - } - - var st = Ext.data.SortTypes; - // named sortTypes are supported, here we look them up - if(typeof this.sortType == "string"){ - this.sortType = st[this.sortType]; - } - - // set default sortType for strings and dates - if(!this.sortType){ - switch(this.type){ - case "string": - this.sortType = st.asUCString; - break; - case "date": - this.sortType = st.asDate; - break; - default: - this.sortType = st.none; +Ext.data.Field = Ext.extend(Object, { + + constructor : function(config){ + if(Ext.isString(config)){ + config = {name: config}; } - } + Ext.apply(this, config); + + var types = Ext.data.Types, + st = this.sortType, + t; - // define once - var stripRe = /[\$,%]/g; - - // prebuilt conversion function for this field, instead of - // switching every time we're reading a value - if(!this.convert){ - var cv, dateFormat = this.dateFormat; - switch(this.type){ - case "": - case "auto": - case undefined: - cv = function(v){ return v; }; - break; - case "string": - cv = function(v){ return (v === undefined || v === null) ? '' : String(v); }; - break; - case "int": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseInt(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "float": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseFloat(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "bool": - case "boolean": - cv = function(v){ return v === true || v === "true" || v == 1; }; - break; - case "date": - cv = function(v){ - if(!v){ - return ''; - } - if(Ext.isDate(v)){ - return v; - } - if(dateFormat){ - if(dateFormat == "timestamp"){ - return new Date(v*1000); - } - if(dateFormat == "time"){ - return new Date(parseInt(v, 10)); - } - return Date.parseDate(v, dateFormat); - } - var parsed = Date.parse(v); - return parsed ? new Date(parsed) : null; - }; - break; + if(this.type){ + if(Ext.isString(this.type)){ + this.type = Ext.data.Types[this.type.toUpperCase()] || types.AUTO; + } + }else{ + this.type = types.AUTO; + } + // named sortTypes are supported, here we look them up + if(Ext.isString(st)){ + this.sortType = Ext.data.SortTypes[st]; + }else if(Ext.isEmpty(st)){ + this.sortType = this.type.sortType; } - this.convert = cv; - } -}; -Ext.data.Field.prototype = { + if(!this.convert){ + this.convert = this.type.convert; + } + }, + /** * @cfg {String} name * The name by which the field is referenced within the Record. This is referenced by, for example, - * the dataIndex property in column definition objects passed to {@link Ext.grid.ColumnModel}. - *Note: In the simplest case, if no properties other than name are required, a field + * the
dataIndex
property in column definition objects passed to {@link Ext.grid.ColumnModel}. + *Note: In the simplest case, if no properties other than
*/ /** - * @cfg {String} type - * (Optional) The data type for conversion to displayable value if {@link Ext.data.Field#convert convert} - * has not been specified. Possible values are + * @cfg {Mixed} type + * (Optional) The data type for automatic conversion from received data to the stored value ifname
are required, a field * definition may consist of just a String for the field name.{@link Ext.data.Field#convert convert}
+ * has not been specified. This may be specified as a string value. Possible values are *+ **
- auto (Default, implies no conversion)
*- string
@@ -120,13 +69,16 @@ Ext.data.Field.prototype = { *- float
*- boolean
*- date
This may also be specified by referencing a member of the {@link Ext.data.Types} class.
+ *Developers may create their own application-specific data types by defining new members of the + * {@link Ext.data.Types} class.
*/ /** * @cfg {Function} convert * (Optional) A function which converts the value provided by the Reader into an object that will be stored * in the Record. It is passed the following parameters:**
- v : Mixed
+ * the configuredThe data value as read by the Reader, if undefined will use - * the configured {@link Ext.data.Field#defaultValue defaultValue}.{@link Ext.data.Field#defaultValue defaultValue}
.
(Optional) Used when converting received data into a Date when the {@link #type} is specified as "date"
.
A format string for the {@link Date#parseDate Date.parseDate} function, or "timestamp" if the * value provided by the Reader is a UNIX timestamp, or "time" if the value provided by the Reader is a - * javascript millisecond timestamp. + * javascript millisecond timestamp. See {@link Date}
*/ dateFormat: null, + + /** + * @cfg {Boolean} useNull + *(Optional) Use when converting received data into a Number type (either int or float). If the value cannot be parsed, + * null will be used if useNull is true, otherwise the value will be 0. Defaults to false + */ + useNull: false, +
/** * @cfg {Mixed} defaultValue * (Optional) The default value used when a Record is being created by a {@link Ext.data.Reader Reader} - * when the item referenced by the {@link Ext.data.Field#mapping mapping} does not exist in the data + * when the item referenced by the{@link Ext.data.Field#mapping mapping}
does not exist in the data
* object (i.e. undefined). (defaults to "")
*/
defaultValue: "",
@@ -236,17 +197,18 @@ sortType: function(value) {
sortType : null,
/**
* @cfg {String} sortDir
- * (Optional) Initial direction to sort ("ASC" or "DESC"). Defaults to
- * "ASC".
+ * (Optional) Initial direction to sort ("ASC"
or "DESC"
). Defaults to
+ * "ASC"
.
*/
sortDir : "ASC",
- /**
- * @cfg {Boolean} allowBlank
- * (Optional) Used for validating a {@link Ext.data.Record record}, defaults to true.
- * An empty value here will cause {@link Ext.data.Record}.{@link Ext.data.Record#isValid isValid}
- * to evaluate to false.
- */
- allowBlank : true
-};
-
+ /**
+ * @cfg {Boolean} allowBlank
+ * (Optional) Used for validating a {@link Ext.data.Record record}, defaults to true
.
+ * An empty value here will cause {@link Ext.data.Record}.{@link Ext.data.Record#isValid isValid}
+ * to evaluate to false
.
+ */
+ allowBlank : true
+});
+
+
\ No newline at end of file