📄 autocompletebehavior.js
字号:
if ((!this._textBoxHasFocus) || (prefixText != this._currentCompletionWord())) {
this._hideCompletionList();
return;
}
if (completionItems && completionItems.length) {
this._completionListElement.innerHTML = '';
this._selectIndex = -1;
var _firstChild = null;
var text = null;
var value = null;
for (var i = 0; i < completionItems.length; i++) {
// Create the item
var itemElement = null;
if (this._completionListElementID) {
// the completion element has been created by the user and li won't necessarily work
itemElement = document.createElement('div');
} else {
itemElement = document.createElement('li');
}
// set the first child if it is null
if( _firstChild == null ){
_firstChild = itemElement;
}
// Get the text/value for the item
try {
var pair = Sys.Serialization.JavaScriptSerializer.deserialize('(' + completionItems[i] + ')');
if (pair && pair.First) {
// Use the text and value pair returned from the web service
text = pair.First;
value = pair.Second;
} else {
// If the web service only returned a regular string, use it for
// both the text and the value
text = pair;
value = pair;
}
} catch (ex) {
text = completionItems[i];
value = completionItems[i];
}
// Set the text/value for the item
itemElement.appendChild(document.createTextNode(this._getTextWithInsertedWord(text)));
itemElement._value = value;
itemElement.__item = '';
if (this._completionListItemCssClass) {
Sys.UI.DomElement.addCssClass(itemElement, this._completionListItemCssClass);
} else {
var itemElementStyle = itemElement.style;
itemElementStyle.padding = '0px';
itemElementStyle.textAlign = 'left';
itemElementStyle.textOverflow = 'ellipsis';
// workaround for safari since normal colors do not
// show well there.
if (Sys.Browser.agent === Sys.Browser.Safari) {
itemElementStyle.backgroundColor = 'white';
itemElementStyle.color = 'black';
} else {
itemElementStyle.backgroundColor = this._textBackground;
itemElementStyle.color = this._textColor;
}
}
this._completionListElement.appendChild(itemElement);
}
var elementBounds = $common.getBounds(this.get_element());
this._completionListElement.style.width = Math.max(1, elementBounds.width - 2) + 'px';
this._completionListElement.scrollTop = 0;
this.raisePopulated(Sys.EventArgs.Empty);
var eventArgs = new Sys.CancelEventArgs();
this.raiseShowing(eventArgs);
if (!eventArgs.get_cancel()) {
this.showPopup();
// Check if the first Row is to be selected by default and if yes highlight it and updated selectIndex.
if (this._firstRowSelected && (_firstChild != null)) {
this._highlightItem( _firstChild );
this._selectIndex = 0;
}
}
} else {
this._hideCompletionList();
}
},
get_onShow : function() {
/// <value type="String" mayBeNull="true">
/// Generic OnShow Animation's JSON definition
/// </value>
return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson;
},
set_onShow : function(value) {
if (this._popupBehavior) {
this._popupBehavior.set_onShow(value)
} else {
this._onShowJson = value;
}
this.raisePropertyChanged('onShow');
},
get_onShowBehavior : function() {
/// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
/// Generic OnShow Animation's behavior
/// </value>
return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null;
},
onShow : function() {
/// <summary>
/// Play the OnShow animation
/// </summary>
/// <returns />
if (this._popupBehavior) {
this._popupBehavior.onShow();
}
},
get_onHide : function() {
/// <value type="String" mayBeNull="true">
/// Generic OnHide Animation's JSON definition
/// </value>
return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson;
},
set_onHide : function(value) {
if (this._popupBehavior) {
this._popupBehavior.set_onHide(value)
} else {
this._onHideJson = value;
}
this.raisePropertyChanged('onHide');
},
get_onHideBehavior : function() {
/// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
/// Generic OnHide Animation's behavior
/// </value>
return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null;
},
onHide : function() {
/// <summary>
/// Play the OnHide animation
/// </summary>
/// <returns />
if (this._popupBehavior) {
this._popupBehavior.onHide();
}
},
get_completionInterval: function() {
/// <value type="Number" integer="true" maybeNull="true">
/// Auto completion timer interval in milliseconds.
/// </value>
return this._completionInterval;
},
set_completionInterval: function(value) {
if (this._completionInterval != value) {
this._completionInterval = value;
this.raisePropertyChanged('completionInterval');
}
},
get_completionList: function() {
/// <value type="Sys.UI.DomElement" domElement="true" maybeNull="true">
/// List dom element.
/// </value>
return this._completionListElement;
},
set_completionList: function(value) {
if (this._completionListElement != value) {
this._completionListElement = value;
this.raisePropertyChanged('completionList');
}
},
get_completionSetCount: function() {
/// <value type="Number" integer="true" maybeNull="true">
/// Maximum completion set size.
/// </value>
return this._completionSetCount;
},
set_completionSetCount: function(value) {
if (this._completionSetCount != value) {
this._completionSetCount = value;
this.raisePropertyChanged('completionSetCount');
}
},
get_minimumPrefixLength: function() {
/// <value type="Number" integer="true" maybeNull="true">
/// Minimum text prefix length required to call the webservice.
/// </value>
return this._minimumPrefixLength;
},
set_minimumPrefixLength: function(value) {
if (this._minimumPrefixLength != value) {
this._minimumPrefixLength = value;
this.raisePropertyChanged('minimumPrefixLength');
}
},
get_serviceMethod: function() {
/// <value type="String" maybeNull="false">
/// Web service method.
/// </value>
return this._serviceMethod;
},
set_serviceMethod: function(value) {
if (this._serviceMethod != value) {
this._serviceMethod = value;
this.raisePropertyChanged('serviceMethod');
}
},
get_servicePath: function() {
/// <value type="String" maybeNull="true">
/// Web service url.
/// </value>
return this._servicePath;
},
set_servicePath: function(value) {
if (this._servicePath != value) {
this._servicePath = value;
this.raisePropertyChanged('servicePath');
}
},
get_contextKey : function() {
/// <value type="String" mayBeNull="true">
/// User/page specific context provided to an optional overload of the
/// web method described by ServiceMethod/ServicePath. If the context
/// key is used, it should have the same signature with an additional
/// parameter named contextKey of type string.
/// </value>
return this._contextKey;
},
set_contextKey : function(value) {
if (this._contextKey != value) {
this._contextKey = value;
this.set_useContextKey(true);
this.raisePropertyChanged('contextKey');
}
},
get_useContextKey : function() {
/// <value type="Boolean">
/// Whether or not the ContextKey property should be used. This will be
/// automatically enabled if the ContextKey property is ever set
/// (on either the client or the server). If the context key is used,
/// it should have the same signature with an additional parameter
/// named contextKey of type string.
/// </value>
return this._useContextKey;
},
set_useContextKey : function(value) {
if (this._useContextKey != value) {
this._useContextKey = value;
this.raisePropertyChanged('useContextKey');
}
},
get_enableCaching: function() {
/// <value type="Boolean" maybeNull="true">
/// Get or sets whether suggestions retrieved from the webservice
/// should be cached.
/// </value>
return this._enableCaching;
},
set_enableCaching: function(value) {
if (this._enableCaching != value) {
this._enableCaching = value;
this.raisePropertyChanged('enableCaching');
}
},
get_completionListElementID: function() {
/// <value type="String" maybeNull="true">
/// ID of the completion div element.
/// </value>
return this._completionListElementID;
},
set_completionListElementID: function(value) {
if (this._completionListElementID != value) {
this._completionListElementID = value;
this.raisePropertyChanged('completionListElementID');
}
},
get_completionListCssClass : function() {
/// <value type="String" maybeNull="true">
/// Css class name that will be used to style the completion list element.
/// </value>
return this._completionListCssClass;
},
set_completionListCssClass : function(value) {
if (this._completionListCssClass != value) {
this._completionListCssClass = value;
this.raisePropertyChanged('completionListCssClass');
}
},
get_completionListItemCssClass : function() {
/// <value type="String" maybeNull="true">
/// Css class name that will be used to style an item in the completion list.
/// </value>
return this._completionListItemCssClass;
},
set_completionListItemCssClass : function(value) {
if (this._completionListItemCssClass != value) {
this._completionListItemCssClass = value;
this.raisePropertyChanged('completionListItemCssClass');
}
},
get_highlightedItemCssClass : function() {
/// <value type="String" maybeNull="true">
/// Css class name that will be used to style a highlighted item in the list.
/// </value>
return this._highlightedItemCssClass;
},
set_highlightedItemCssClass : function(value) {
if(this._highlightedItemCssClass != value) {
this._highlightedItemCssClass = value;
this.raisePropertyChanged('highlightedItemCssClass');
}
},
get_delimiterCharacters: function() {
/// <value type="String">
/// Gets or sets the character(s) used to seperate words for autocomplete.
/// </value>
return this._delimiterCharacters;
},
set_delimiterCharacters: function(value) {
if (this._delimiterCharacters != value) {
this._delimiterCharacters = value;
this.raisePropertyChanged('delimiterCharacters');
}
},
get_firstRowSelected:function() {
/// <value type="Boolean" maybeNull="true">
/// Flag to determine if the first option in the flyout is selected or not.
/// </value>
return this._firstRowSelected;
},
set_firstRowSelected:function(value) {
if(this._firstRowSelected != value) {
this._firstRowSelected = value;
this.raisePropertyChanged('firstRowSelected');
}
},
add_populating : function(handler) {
/// <summary>
/// Add an event handler for the populating event
/// </summary>
/// <param name="handler" type="Function" mayBeNull="false">
/// Event handler
/// </param>
/// <returns />
this.get_events().addHandler('populating', handler);
},
remove_populating : function(handler) {
/// <summary>
/// Remove an event handler from the populating event
/// </summary>
/// <param name="handler" type="Function" mayBeNull="false">
/// Event handler
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -