📄 basescripts.js
字号:
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.
/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />
Type.registerNamespace('AjaxControlToolkit');
// This is the base behavior for all extender behaviors
AjaxControlToolkit.BehaviorBase = function(element) {
/// <summary>
/// Base behavior for all extender behaviors
/// </summary>
/// <param name="element" type="Sys.UI.DomElement" domElement="true">
/// Element the behavior is associated with
/// </param>
AjaxControlToolkit.BehaviorBase.initializeBase(this,[element]);
this._clientStateFieldID = null;
this._pageRequestManager = null;
this._partialUpdateBeginRequestHandler = null;
this._partialUpdateEndRequestHandler = null;
}
AjaxControlToolkit.BehaviorBase.prototype = {
initialize : function() {
/// <summary>
/// Initialize the behavior
/// </summary>
// TODO: Evaluate necessity
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'initialize');
},
dispose : function() {
/// <summary>
/// Dispose the behavior
/// </summary>
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'dispose');
if (this._pageRequestManager) {
if (this._partialUpdateBeginRequestHandler) {
this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequestHandler);
this._partialUpdateBeginRequestHandler = null;
}
if (this._partialUpdateEndRequestHandler) {
this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestHandler);
this._partialUpdateEndRequestHandler = null;
}
this._pageRequestManager = null;
}
},
get_ClientStateFieldID : function() {
/// <value type="String">
/// ID of the hidden field used to store client state
/// </value>
return this._clientStateFieldID;
},
set_ClientStateFieldID : function(value) {
if (this._clientStateFieldID != value) {
this._clientStateFieldID = value;
this.raisePropertyChanged('ClientStateFieldID');
}
},
get_ClientState : function() {
/// <value type="String">
/// Client state
/// </value>
if (this._clientStateFieldID) {
var input = document.getElementById(this._clientStateFieldID);
if (input) {
return input.value;
}
}
return null;
},
set_ClientState : function(value) {
if (this._clientStateFieldID) {
var input = document.getElementById(this._clientStateFieldID);
if (input) {
input.value = value;
}
}
},
registerPartialUpdateEvents : function() {
/// <summary>
/// Register for beginRequest and endRequest events on the PageRequestManager,
/// (which cause _partialUpdateBeginRequest and _partialUpdateEndRequest to be
/// called when an UpdatePanel refreshes)
/// </summary>
if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){
this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
if (this._pageRequestManager) {
this._partialUpdateBeginRequestHandler = Function.createDelegate(this, this._partialUpdateBeginRequest);
this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequestHandler);
this._partialUpdateEndRequestHandler = Function.createDelegate(this, this._partialUpdateEndRequest);
this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHandler);
}
}
},
_partialUpdateBeginRequest : function(sender, beginRequestEventArgs) {
/// <summary>
/// Method that will be called when a partial update (via an UpdatePanel) begins,
/// if registerPartialUpdateEvents() has been called.
/// </summary>
/// <param name="sender" type="Object">
/// Sender
/// </param>
/// <param name="beginRequestEventArgs" type="Sys.WebForms.BeginRequestEventArgs">
/// Event arguments
/// </param>
// Nothing done here; override this method in a child class
},
_partialUpdateEndRequest : function(sender, endRequestEventArgs) {
/// <summary>
/// Method that will be called when a partial update (via an UpdatePanel) finishes,
/// if registerPartialUpdateEvents() has been called.
/// </summary>
/// <param name="sender" type="Object">
/// Sender
/// </param>
/// <param name="endRequestEventArgs" type="Sys.WebForms.EndRequestEventArgs">
/// Event arguments
/// </param>
// Nothing done here; override this method in a child class
}
}
AjaxControlToolkit.BehaviorBase.registerClass('AjaxControlToolkit.BehaviorBase', Sys.UI.Behavior);
// Dynamically populates content when the populate method is called
AjaxControlToolkit.DynamicPopulateBehaviorBase = function(element) {
/// <summary>
/// DynamicPopulateBehaviorBase is used to add DynamicPopulateBehavior funcitonality
/// to other extenders. It will dynamically populate the contents of the target element
/// when its populate method is called.
/// </summary>
/// <param name="element" type="Sys.UI.DomElement" domElement="true">
/// DOM Element the behavior is associated with
/// </param>
AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(this, [element]);
this._DynamicControlID = null;
this._DynamicContextKey = null;
this._DynamicServicePath = null;
this._DynamicServiceMethod = null;
this._cacheDynamicResults = false;
this._dynamicPopulateBehavior = null;
this._populatingHandler = null;
this._populatedHandler = null;
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype = {
initialize : function() {
/// <summary>
/// Initialize the behavior
/// </summary>
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'initialize');
// Create event handlers
this._populatingHandler = Function.createDelegate(this, this._onPopulating);
this._populatedHandler = Function.createDelegate(this, this._onPopulated);
},
dispose : function() {
/// <summary>
/// Dispose the behavior
/// </summary>
// Dispose of event handlers
if (this._populatedHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populated(this._populatedHandler);
}
this._populatedHandler = null;
}
if (this._populatingHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);
}
this._populatingHandler = null;
}
// Dispose of the placeholder control and behavior
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.dispose();
this._dynamicPopulateBehavior = null;
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'dispose');
},
populate : function(contextKeyOverride) {
/// <summary>
/// Demand-create the DynamicPopulateBehavior and use it to populate the target element
/// </summary>
/// <param name="contextKeyOverride" type="String" mayBeNull="true" optional="true">
/// An arbitrary string value to be passed to the web method. For example, if the element to be populated is within a data-bound repeater, this could be the ID of the current row.
/// </param>
// If the DynamicPopulateBehavior's element is out of date, dispose of it
if (this._dynamicPopulateBehavior && (this._dynamicPopulateBehavior.get_element() != $get(this._DynamicControlID))) {
this._dynamicPopulateBehavior.dispose();
this._dynamicPopulateBehavior = null;
}
// If a DynamicPopulateBehavior is not available and the necessary information is, create one
if (!this._dynamicPopulateBehavior && this._DynamicControlID && this._DynamicServiceMethod) {
this._dynamicPopulateBehavior = $create(AjaxControlToolkit.DynamicPopulateBehavior,
{
"id" : this.get_id() + "_DynamicPopulateBehavior",
"ContextKey" : this._DynamicContextKey,
"ServicePath" : this._DynamicServicePath,
"ServiceMethod" : this._DynamicServiceMethod,
"cacheDynamicResults" : this._cacheDynamicResults
}, null, null, $get(this._DynamicControlID));
// Attach event handlers
this._dynamicPopulateBehavior.add_populating(this._populatingHandler);
this._dynamicPopulateBehavior.add_populated(this._populatedHandler);
}
// If a DynamicPopulateBehavior is available, use it to populate the dynamic content
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.populate(contextKeyOverride ? contextKeyOverride : this._DynamicContextKey);
}
},
_onPopulating : function(sender, eventArgs) {
/// <summary>
/// Handler for DynamicPopulate behavior's Populating event
/// </summary>
/// <param name="sender" type="Object">
/// DynamicPopulate behavior
/// </param>
/// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
/// Event args
/// </param>
this.raisePopulating(eventArgs);
},
_onPopulated : function(sender, eventArgs) {
/// <summary>
/// Handler for DynamicPopulate behavior's Populated event
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -