X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/7a654f8d43fdb43d78b63d90528bed6e86b608cc..3789b528d8dd8aad4558e38e22d775bcab1cbd36:/docs/source/ComboBox.html?ds=inline diff --git a/docs/source/ComboBox.html b/docs/source/ComboBox.html index 2d089727..46feb821 100644 --- a/docs/source/ComboBox.html +++ b/docs/source/ComboBox.html @@ -1,10 +1,27 @@ -
/**
+
+
+
+
+ The source code
+
+
+
+
+
+
+ /**
* @class Ext.form.field.ComboBox
* @extends Ext.form.field.Picker
*
* A combobox control with support for autocomplete, remote loading, and many other features.
*
- * A ComboBox is like a combination of a traditional HTML text `<input>` field and a `<select>`
+ * A ComboBox is like a combination of a traditional HTML text `<input>` field and a `<select>`
* field; the user is able to type freely into the field, and/or pick values from a dropdown selection
* list. The user can input any value by default, even if it does not appear in the selection list;
* to prevent free-form values and restrict them to items in the list, set {@link #forceSelection} to `true`.
@@ -74,7 +91,7 @@ Ext.define('Ext.form.field.ComboBox', {
alternateClassName: 'Ext.form.ComboBox',
alias: ['widget.combobox', 'widget.combo'],
- /**
+ /**
* @cfg {String} triggerCls
* An additional CSS class used to style the trigger button. The trigger will always get the
* {@link #triggerBaseCls} by default and <tt>triggerCls</tt> will be <b>appended</b> if specified.
@@ -82,7 +99,7 @@ Ext.define('Ext.form.field.ComboBox', {
*/
triggerCls: Ext.baseCSSPrefix + 'form-arrow-trigger',
- /**
+ /**
* @cfg {Ext.data.Store/Array} store The data source to which this combo is bound (defaults to <tt>undefined</tt>).
* Acceptable values for this property are:
* <div class="mdetail-params"><ul>
@@ -100,7 +117,7 @@ Ext.define('Ext.form.field.ComboBox', {
* <p>See also <tt>{@link #queryMode}</tt>.</p>
*/
- /**
+ /**
* @cfg {Boolean} multiSelect
* If set to <tt>true</tt>, allows the combo field to hold more than one value at a time, and allows selecting
* multiple items from the dropdown list. The combo's text field will show all selected values separated by
@@ -108,21 +125,21 @@ Ext.define('Ext.form.field.ComboBox', {
*/
multiSelect: false,
- /**
+ /**
* @cfg {String} delimiter
* The character(s) used to separate the {@link #displayField display values} of multiple selected items
* when <tt>{@link #multiSelect} = true</tt>. Defaults to <tt>', '</tt>.
*/
delimiter: ', ',
- /**
+ /**
* @cfg {String} displayField The underlying {@link Ext.data.Field#name data field name} to bind to this
* ComboBox (defaults to 'text').
* <p>See also <tt>{@link #valueField}</tt>.</p>
*/
displayField: 'text',
- /**
+ /**
* @cfg {String} valueField
* @required
* The underlying {@link Ext.data.Field#name data value name} to bind to this ComboBox (defaults to match
@@ -131,7 +148,7 @@ Ext.define('Ext.form.field.ComboBox', {
* mapped. See also <tt>{@link #displayField}</tt>.</p>
*/
- /**
+ /**
* @cfg {String} triggerAction The action to execute when the trigger is clicked.
* <div class="mdetail-params"><ul>
* <li><b><tt>'all'</tt></b> : <b>Default</b>
@@ -143,19 +160,20 @@ Ext.define('Ext.form.field.ComboBox', {
*/
triggerAction: 'all',
- /**
+ /**
* @cfg {String} allQuery The text query to send to the server to return all records for the list
* with no filtering (defaults to '')
*/
allQuery: '',
- /**
- * @cfg {String} queryParam Name of the query ({@link Ext.data.Store#baseParam baseParam} name for the store)
- * as it will be passed on the querystring (defaults to <tt>'query'</tt>)
+ /**
+ * @cfg {String} queryParam Name of the query ({@link Ext.data.proxy.Proxy#extraParam extraParam} name for the store)
+ * as it will be passed on the querystring (defaults to <tt>'query'</tt>). If explicitly set to a falsey value it will
+ * not be send.
*/
queryParam: 'query',
- /**
+ /**
* @cfg {String} queryMode
* The mode for queries. Acceptable values are:
* <div class="mdetail-params"><ul>
@@ -189,7 +207,7 @@ var combo = new Ext.form.field.ComboBox({
queryCaching: true,
- /**
+ /**
* @cfg {Number} pageSize If greater than <tt>0</tt>, a {@link Ext.toolbar.Paging} is displayed in the
* footer of the dropdown list and the {@link #doQuery filter queries} will execute with page start and
* {@link Ext.toolbar.Paging#pageSize limit} parameters. Only applies when <tt>{@link #queryMode} = 'remote'</tt>
@@ -197,57 +215,59 @@ var combo = new Ext.form.field.ComboBox({
*/
pageSize: 0,
- /**
+ /**
* @cfg {Number} queryDelay The length of time in milliseconds to delay between the start of typing and
* sending the query to filter the dropdown list (defaults to <tt>500</tt> if <tt>{@link #queryMode} = 'remote'</tt>
* or <tt>10</tt> if <tt>{@link #queryMode} = 'local'</tt>)
*/
- /**
+ /**
* @cfg {Number} minChars The minimum number of characters the user must type before autocomplete and
* {@link #typeAhead} activate (defaults to <tt>4</tt> if <tt>{@link #queryMode} = 'remote'</tt> or <tt>0</tt> if
* <tt>{@link #queryMode} = 'local'</tt>, does not apply if <tt>{@link Ext.form.field.Trigger#editable editable} = false</tt>).
*/
- /**
- * @cfg {Boolean} autoSelect <tt>true</tt> to select the first result gathered by the data store (defaults
- * to <tt>true</tt>). A false value would require a manual selection from the dropdown list to set the components value
- * unless the value of ({@link #typeAhead}) were true.
+ /**
+ * @cfg {Boolean} autoSelect <tt>true</tt> to automatically highlight the first result gathered by the data store
+ * in the dropdown list when it is opened. (Defaults to <tt>true</tt>). A false value would cause nothing in the
+ * list to be highlighted automatically, so the user would have to manually highlight an item before pressing
+ * the enter or {@link #selectOnTab tab} key to select it (unless the value of ({@link #typeAhead}) were true),
+ * or use the mouse to select a value.
*/
autoSelect: true,
- /**
+ /**
* @cfg {Boolean} typeAhead <tt>true</tt> to populate and autoselect the remainder of the text being
* typed after a configurable delay ({@link #typeAheadDelay}) if it matches a known value (defaults
* to <tt>false</tt>)
*/
typeAhead: false,
- /**
+ /**
* @cfg {Number} typeAheadDelay The length of time in milliseconds to wait until the typeahead text is displayed
* if <tt>{@link #typeAhead} = true</tt> (defaults to <tt>250</tt>)
*/
typeAheadDelay: 250,
- /**
+ /**
* @cfg {Boolean} selectOnTab
* Whether the Tab key should select the currently highlighted item. Defaults to <tt>true</tt>.
*/
selectOnTab: true,
- /**
+ /**
* @cfg {Boolean} forceSelection <tt>true</tt> to restrict the selected value to one of the values in the list,
* <tt>false</tt> to allow the user to set arbitrary text into the field (defaults to <tt>false</tt>)
*/
forceSelection: false,
- /**
+ /**
* @cfg {String} valueNotFoundText When using a name/value combo, if the value passed to setValue is not found in
* the store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined). If this
* default text is used, it means there is no value set and no validation will occur on this field.
*/
- /**
+ /**
* The value of the match string used to filter the store. Delete this property to force a requery.
* Example use:
* <pre><code>
@@ -277,7 +297,7 @@ var combo = new Ext.form.field.ComboBox({
* @type String
*/
- /**
+ /**
* @cfg {Object} defaultListConfig
* Set of options that will be used as defaults for the user-configured {@link #listConfig} object.
*/
@@ -290,14 +310,14 @@ var combo = new Ext.form.field.ComboBox({
shadow: 'sides'
},
- /**
+ /**
* @cfg {Mixed} transform
* The id, DOM node or {@link Ext.core.Element} of an existing HTML <tt><select></tt> element to
* convert into a ComboBox. The target select's options will be used to build the options in the ComboBox
* dropdown; a configured {@link #store} will take precedence over this.
*/
- /**
+ /**
* @cfg {Object} listConfig
* <p>An optional set of configuration properties that will be passed to the {@link Ext.view.BoundList}'s
* constructor. Any configuration that is valid for BoundList can be included. Some of the more useful
@@ -346,7 +366,7 @@ var combo = new Ext.form.field.ComboBox({
this.addEvents(
// TODO need beforeselect?
- /**
+ /**
* @event beforequery
* Fires before all queries are processed. Return false to cancel the query or set the queryEvent's
* cancel property to true.
@@ -548,7 +568,7 @@ var combo = new Ext.form.field.ComboBox({
}
},
- /**
+ /**
* @private
* Execute the query with the raw contents within the textfield.
*/
@@ -556,7 +576,7 @@ var combo = new Ext.form.field.ComboBox({
this.doQuery(this.getRawValue());
},
- /**
+ /**
* Executes a query to filter the dropdown list. Fires the {@link #beforequery} event prior to performing the
* query allowing the query action to be canceled if needed.
* @param {String} queryString The SQL query to execute
@@ -628,8 +648,13 @@ var combo = new Ext.form.field.ComboBox({
// private
getParams: function(queryString) {
var p = {},
- pageSize = this.pageSize;
- p[this.queryParam] = queryString;
+ pageSize = this.pageSize,
+ param = this.queryParam;
+
+ if (param) {
+ p[param] = queryString;
+ }
+
if (pageSize) {
p.start = 0;
p.limit = pageSize;
@@ -637,7 +662,7 @@ var combo = new Ext.form.field.ComboBox({
return p;
},
- /**
+ /**
* @private
* If the autoSelect config is true, and the picker is open, highlights the first item.
*/
@@ -698,14 +723,23 @@ var combo = new Ext.form.field.ComboBox({
me.doQueryTask.delay(me.queryDelay);
}
}
+
+ if (me.enableKeyEvents) {
+ me.callParent(arguments);
+ }
},
initEvents: function() {
var me = this;
me.callParent();
- // setup keyboard handling
- me.mon(me.inputEl, 'keyup', me.onKeyUp, me);
+ /*
+ * Setup keyboard handling. If enableKeyEvents is true, we already have
+ * a listener on the inputEl for keyup, so don't create a second.
+ */
+ if (!me.enableKeyEvents) {
+ me.mon(me.inputEl, 'keyup', me.onKeyUp, me);
+ }
},
createPicker: function() {
@@ -781,7 +815,7 @@ var combo = new Ext.form.field.ComboBox({
}
},
- /**
+ /**
* @private
* Enables the key nav for the BoundList when it is expanded.
*/
@@ -818,7 +852,7 @@ var combo = new Ext.form.field.ComboBox({
me.inputEl.focus();
},
- /**
+ /**
* @private
* Disables the key nav for the BoundList when it is collapsed.
*/
@@ -831,7 +865,7 @@ var combo = new Ext.form.field.ComboBox({
}
},
- /**
+ /**
* Selects an item by a {@link Ext.data.Model Model}, or by a key value.
* @param r
*/
@@ -839,7 +873,7 @@ var combo = new Ext.form.field.ComboBox({
this.setValue(r, true);
},
- /**
+ /**
* Find the record by searching for a specific field/value combination
* Returns an Ext.data.Record or false
* @private
@@ -856,7 +890,7 @@ var combo = new Ext.form.field.ComboBox({
return this.findRecord(this.displayField, value);
},
- /**
+ /**
* Sets the specified value(s) into the field. For each value, if a record is found in the {@link #store} that
* matches based on the {@link #valueField}, then that record's {@link #displayField} will be displayed in the
* field. If no match is found, and the {@link #valueNotFoundText} config option is defined, then that will be
@@ -930,7 +964,7 @@ var combo = new Ext.form.field.ComboBox({
return me;
},
- /**
+ /**
* @private Generate the string value to be displayed in the text field for the currently stored value
*/
getDisplayValue: function() {
@@ -984,14 +1018,14 @@ var combo = new Ext.form.field.ComboBox({
return true;
},
- /**
+ /**
* Clears any value currently set in the ComboBox.
*/
clearValue: function() {
this.setValue([]);
},
- /**
+ /**
* @private Synchronizes the selection in the picker to match the current value of the combobox.
*/
syncSelection: function() {
@@ -1019,4 +1053,6 @@ var combo = new Ext.form.field.ComboBox({
}
}
});
-
\ No newline at end of file
+
+
+