📄 tabs.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" />
/// <reference path="../ExtenderBase/BaseScripts.js" />
/// <reference path="../Common/Common.js" />
/// <reference path="../DynamicPopulate/DynamicPopulateBehavior.js" />
Type.registerNamespace("AjaxControlToolkit");
AjaxControlToolkit.ScrollBars = function() { }
AjaxControlToolkit.ScrollBars.prototype = {
None : 0x00,
Horizontal : 0x01,
Vertical : 0x02,
Both : 0x03,
Auto : 0x04
}
AjaxControlToolkit.ScrollBars.registerEnum("AjaxControlToolkit.ScrollBars", true);
AjaxControlToolkit.TabContainer = function(element) {
AjaxControlToolkit.TabContainer.initializeBase(this, [element]);
this._cachedActiveTabIndex = -1;
this._activeTabIndex = -1;
this._scrollBars = AjaxControlToolkit.ScrollBars.None;
this._tabs = null;
this._header = null;
this._body = null;
this._loaded = false;
this._autoPostBackId = null;
this._app_onload$delegate = Function.createDelegate(this, this._app_onload);
}
AjaxControlToolkit.TabContainer.prototype = {
add_activeTabChanged : function(handler) {
this.get_events().addHandler("activeTabChanged", handler);
},
remove_activeTabChanged : function(handler) {
this.get_events().removeHandler("activeTabChanged", handler);
},
raiseActiveTabChanged : function() {
var eh = this.get_events().getHandler("activeTabChanged");
if (eh) {
eh(this, Sys.EventArgs.Empty);
}
if (this._autoPostBackId) {
__doPostBack(this._autoPostBackId, "activeTabChanged:" + this.get_activeTabIndex());
}
},
get_activeTabIndex : function() {
if (this._cachedActiveTabIndex > -1) {
return this._cachedActiveTabIndex;
}
return this._activeTabIndex;
},
set_activeTabIndex : function(value) {
if (!this.get_isInitialized()) {
this._cachedActiveTabIndex = value;
} else {
if (value < -1 || value >= this.get_tabs().length) {
throw Error.argumentOutOfRange("value");
}
if (this._activeTabIndex != -1) {
this.get_tabs()[this._activeTabIndex]._set_active(false);
}
this._activeTabIndex = value;
if (this._activeTabIndex != -1) {
this.get_tabs()[this._activeTabIndex]._set_active(true);
}
if (this._loaded) {
this.raiseActiveTabChanged();
}
this.raisePropertyChanged("activeTabIndex");
}
},
get_tabs : function() {
if (this._tabs == null) {
this._tabs = [];
}
return this._tabs;
},
get_activeTab : function() {
if (this._activeTabIndex > -1) {
return this.get_tabs()[this._activeTabIndex];
}
return null;
},
set_activeTab : function(value) {
var i = Array.indexOf(this.get_tabs(), value);
if (i == -1) {
throw Error.argument("value", AjaxControlToolkit.Resources.Tabs_ActiveTabArgumentOutOfRange);
}
this.set_activeTabIndex(i);
},
get_autoPostBackId : function() {
return this._autoPostBackId;
},
set_autoPostBackId : function(value) {
this._autoPostBackId = value;
},
get_scrollBars : function() {
return this._scrollBars;
},
set_scrollBars : function(value) {
if (this._scrollBars != value) {
this._scrollBars = value;
this._invalidate();
this.raisePropertyChanged("scrollBars");
}
},
initialize : function() {
AjaxControlToolkit.TabContainer.callBaseMethod(this, "initialize");
var elt = this.get_element();
var header = this._header = $get(this.get_id() + "_header");
var body = this._body = $get(this.get_id() + "_body");
// default classes
$common.addCssClasses(elt, [
"ajax__tab_container",
"ajax__tab_default"
]);
Sys.UI.DomElement.addCssClass(header, "ajax__tab_header");
Sys.UI.DomElement.addCssClass(body, "ajax__tab_body");
this._invalidate();
Sys.Application.add_load(this._app_onload$delegate);
},
dispose : function() {
Sys.Application.remove_load(this._app_onload$delegate);
AjaxControlToolkit.TabContainer.callBaseMethod(this, "dispose");
},
getFirstTab : function(includeDisabled) {
var tabs = this.get_tabs();
for(var i = 0; i < tabs.length; i++) {
if (includeDisabled || tabs[i].get_enabled()) {
return tabs[i];
}
}
return null;
},
getLastTab : function(includeDisabled) {
var tabs = this.get_tabs();
for(var i = tabs.length -1; i >= 0; i--) {
if (includeDisabled || tabs[i].get_enabled()) {
return tabs[i];
}
}
return null;
},
getNextTab : function(includeDisabled) {
var tabs = this.get_tabs();
var active = this.get_activeTabIndex();
for (var i = 1; i < tabs.length; i++) {
var tabIndex = (active + i) % tabs.length;
var tab = tabs[tabIndex];
if (includeDisabled || tab.get_enabled())
return tab;
}
return null;
},
getPreviousTab : function(includeDisabled) {
var tabs = this.get_tabs();
var active = this.get_activeTabIndex();
for (var i = 1; i < tabs.length; i++) {
var tabIndex = (tabs.length + (active - i)) % tabs.length;
var tab = tabs[tabIndex];
if (includeDisabled || tab.get_enabled())
return tab;
}
return null;
},
getNearestTab : function() {
var prev = this.getPreviousTab(false);
var next = this.getNextTab(false);
if (prev && prev.get_tabIndex() < this._activeTabIndex) {
return prev;
} else if(next && next.get_tabIndex() > this._activeTabIndex) {
return next;
}
return null;
},
saveClientState : function() {
var tabs = this.get_tabs();
var tabState = [];
for(var i = 0; i < tabs.length; i++) {
Array.add(tabState, tabs[i].get_enabled());
}
var state = {
ActiveTabIndex:this._activeTabIndex,
TabState:tabState
};
return Sys.Serialization.JavaScriptSerializer.serialize(state);
},
_invalidate : function() {
if (this.get_isInitialized()) {
$common.removeCssClasses(this._body, [
"ajax__scroll_horiz",
"ajax__scroll_vert",
"ajax__scroll_both",
"ajax__scroll_auto"
]);
switch (this._scrollBars) {
case AjaxControlToolkit.ScrollBars.Horizontal:
Sys.UI.DomElement.addCssClass(this._body, "ajax__scroll_horiz");
break;
case AjaxControlToolkit.ScrollBars.Vertical:
Sys.UI.DomElement.addCssClass(this._body, "ajax__scroll_vert");
break;
case AjaxControlToolkit.ScrollBars.Both:
Sys.UI.DomElement.addCssClass(this._body, "ajax__scroll_both");
break;
case AjaxControlToolkit.ScrollBars.Auto:
Sys.UI.DomElement.addCssClass(this._body, "ajax__scroll_auto");
break;
}
}
},
_app_onload : function(sender, e) {
if (this._cachedActiveTabIndex != -1) {
this.set_activeTabIndex(this._cachedActiveTabIndex);
this._cachedActiveTabIndex = -1;
}
this._loaded = true;
}
}
AjaxControlToolkit.TabContainer.registerClass("AjaxControlToolkit.TabContainer", AjaxControlToolkit.ControlBase);
AjaxControlToolkit.TabPanel = function(element) {
AjaxControlToolkit.TabPanel.initializeBase(this, [element]);
this._active = false;
this._tab = null;
this._headerOuter = null;
this._headerInner = null;
this._header = null;
this._owner = null;
this._enabled = true;
this._tabIndex = -1;
this._dynamicContextKey = null;
this._dynamicServicePath = null;
this._dynamicServiceMethod = null;
this._dynamicPopulateBehavior = null;
this._scrollBars = AjaxControlToolkit.ScrollBars.None;
this._header_onclick$delegate = Function.createDelegate(this, this._header_onclick);
this._header_onmouseover$delegate = Function.createDelegate(this, this._header_onmouseover);
this._header_onmouseout$delegate = Function.createDelegate(this, this._header_onmouseout);
this._header_onmousedown$delegate = Function.createDelegate(this, this._header_onmousedown);
this._dynamicPopulate_onpopulated$delegate = Function.createDelegate(this, this._dynamicPopulate_onpopulated);
this._oncancel$delegate = Function.createDelegate(this, this._oncancel);
}
AjaxControlToolkit.TabPanel.prototype = {
add_click : function(handler) {
this.get_events().addHandler("click", handler);
},
remove_click : function(handler) {
this.get_events().removeHandler("click", handler);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -