📄 tabstrip.cs
字号:
namespace ASPNET.StarterKit.Communities.Admin {
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using ASPNET.StarterKit.Communities;
//*********************************************************************
//
// Tab Strip Class
//
// Used to create the tab strip on the Edit Sections page.
//
//*********************************************************************
[ControlBuilderAttribute(typeof(TabStripControlBuilder))]
[ParseChildrenAttribute(false)]
public class TabStrip : WebControl, INamingContainer {
private bool _isUplevel;
private ArrayList _tabs = new ArrayList();
//*********************************************************************
//
// TabStrip Constructor
//
// Determine whether browser is uplevel.
//
//*********************************************************************
public TabStrip() : base() {
if (Context != null) {
if ((HttpContext.Current.Request.Browser.Browser == "IE") && (HttpContext.Current.Request.Browser.MajorVersion >= 6))
_isUplevel = true;
else
_isUplevel = false;
}
}
//*********************************************************************
//
// AddParsedSubObject Method
//
// Only add tabs to the Tabs collection.
//
//*********************************************************************
protected override void AddParsedSubObject(Object obj) {
if (obj is Tab)
_tabs.Add(obj);
}
//*********************************************************************
//
// OnPreRender Method
//
// Add reference to client-side script.
//
//*********************************************************************
override protected void OnPreRender(EventArgs e)
{
if (_isUplevel && !Page.IsStartupScriptRegistered("tabstrip"))
Page.RegisterStartupScript("tabstrip", String.Format("<script language=\"JavaScript\" Src=\"{0}\"></script>", CommunityGlobals.AppPath + "/scripts/tabstrip.js"));
}
//*********************************************************************
//
// RenderContents Method
//
// Display tabstrip for uplevel browsers.
//
//*********************************************************************
override protected void RenderContents(HtmlTextWriter writer) {
// Dont't render for downlevel browsers
if (! _isUplevel)
return;
// Display the tabs
for (int i = 0;i < _tabs.Count; i++) {
Tab objTab = (Tab) _tabs[i];
writer.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("javascript:showPanel('{0}')", objTab.PanelID));
writer.RenderBeginTag( HtmlTextWriterTag.A );
writer.Write( objTab.Text );
writer.RenderEndTag();
if (i < (_tabs.Count - 1))
writer.Write( " | " );
}
}
}
//*********************************************************************
//
// Tab Strip Control Builder Class
//
// Only parse tabs in the tab strip.
//
//*********************************************************************
public class TabStripControlBuilder : ControlBuilder {
public override Type GetChildControlType(String tagName, IDictionary attributes) {
if (String.Compare(tagName, "tab", true) == 0) {
return typeof(Tab);
}
return null;
}
}
//*********************************************************************
//
// Tab Class
//
// Represents individual tabs in the tab strip.
//
//*********************************************************************
public class Tab : Control {
private string _text;
private string _panelID;
public string Text {
get { return _text; }
set { _text = value; }
}
public string PanelID {
get { return _panelID; }
set { _panelID = value; }
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -