diff options
author | wei <> | 2006-06-17 10:28:26 +0000 |
---|---|---|
committer | wei <> | 2006-06-17 10:28:26 +0000 |
commit | 3a30ede1c03fdd097398b14734822f7ce8e46b6b (patch) | |
tree | 516537f9872da97f25a2187cf1880df65804014c /framework/Web/Javascripts/prado | |
parent | 649082a9eb89991189fafce8432c4fd266fac027 (diff) |
Update TAutoComplete, OnSuggest event for getting suggestions.
Diffstat (limited to 'framework/Web/Javascripts/prado')
-rw-r--r-- | framework/Web/Javascripts/prado/activecontrols3.js | 65 | ||||
-rw-r--r-- | framework/Web/Javascripts/prado/controls.js | 4 |
2 files changed, 48 insertions, 21 deletions
diff --git a/framework/Web/Javascripts/prado/activecontrols3.js b/framework/Web/Javascripts/prado/activecontrols3.js index 6fbde405..c0964dcb 100644 --- a/framework/Web/Javascripts/prado/activecontrols3.js +++ b/framework/Web/Javascripts/prado/activecontrols3.js @@ -16,9 +16,29 @@ Prado.WebUI.CallbackControl = Class.extend(Prado.WebUI.PostBackControl, Prado.WebUI.TActiveButton = Class.extend(Prado.WebUI.CallbackControl);
/**
+ * TActiveTextBox control, handles onchange event.
+ */
+Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,
+{
+ onInit : function(options)
+ {
+ if(options['TextMode'] != 'MultiLine')
+ Event.observe(this.element, "keydown", this.handleReturnKey.bind(this));
+ Event.observe(this.element, "change", this.doCallback.bindEvent(this,options));
+ },
+
+ doCallback : function(event, options)
+ {
+ new Prado.CallbackRequest(options.EventTarget, options);
+ Event.stop(event);
+ }
+});
+
+/**
* TAutoComplete control.
*/
-Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base,
+Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base, Prado.WebUI.TActiveTextBox.prototype);
+Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete,
{
initialize : function(options)
{
@@ -28,11 +48,34 @@ Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base, {
onSuccess : this.onComplete.bind(this)
});
+
+ if(options.AutoPostBack)
+ this.onInit(options);
+ },
+
+ doCallback : function(event, options)
+ {
+ if(!this.active)
+ {
+ new Prado.CallbackRequest(options.EventTarget, options);
+ Event.stop(event);
+ }
+ },
+
+ //Overrides parent implementation, fires onchange event.
+ onClick: function(event)
+ {
+ var element = Event.findElement(event, 'LI');
+ this.index = element.autocompleteIndex;
+ this.selectEntry();
+ this.hide();
+ Event.fireEvent(this.element, "change");
},
getUpdatedChoices : function()
{
- Prado.Callback(this.options.EventTarget, this.getToken(), null, this.options);
+ options = new Array(this.getToken(),"__TAutComplete_onSuggest__");
+ Prado.Callback(this.options.EventTarget, options, null, this.options);
},
onComplete : function(request, boundary)
@@ -41,20 +84,4 @@ Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base, if(typeof(result) == "string" && result.length > 0)
this.updateChoices(result);
}
-});
-
-Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,
-{
- onInit : function(options)
- {
- if(options['TextMode'] != 'MultiLine')
- Event.observe(this.element, "keydown", this.handleReturnKey.bind(this));
- Event.observe(this.element, "change", this.doCallback.bindEvent(this,options));
- },
-
- doCallback : function(event, options)
- {
- new Prado.CallbackRequest(options.EventTarget, options);
- Event.stop(event);
- }
-});
+});
\ No newline at end of file diff --git a/framework/Web/Javascripts/prado/controls.js b/framework/Web/Javascripts/prado/controls.js index 2497c586..285374a3 100644 --- a/framework/Web/Javascripts/prado/controls.js +++ b/framework/Web/Javascripts/prado/controls.js @@ -53,10 +53,10 @@ Prado.WebUI.PostBackControl.prototype = this._elementOnClick = this.element.onclick;
this.element.onclick = null;
}
- Event.observe(this.element, "click", this.onClick.bindEvent(this,options));
+ Event.observe(this.element, "click", this.elementClicked.bindEvent(this,options));
},
- onClick : function(event, options)
+ elementClicked : function(event, options)
{
var src = Event.element(event);
var doPostBack = true;
|