⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skinedcontrol.cs

📁 这是一个简单的论坛程序源码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace NetFocus.Web.Applications.Forum
{
    [ParseChildren(true),PersistChildren(false)]
    public abstract class SkinedControl : WebControl, INamingContainer
    {
        private string skinRelativePath;

        public virtual string ThemeName
        {
            get
            {
                return "default";
            }
        }
        public virtual string SkinFolder
        {
            get
            {
                return "~/Themes/" + ThemeName + "/Skins/";
            }
        }
        public virtual string SkinRelativePath
        {
            get { return skinRelativePath; }
            set { skinRelativePath = value; }
        }

        private String SkinPath
        {
            get
            {
                return this.SkinFolder + this.SkinRelativePath;
            }
        }
        private Boolean SkinFileExists
        {
            get
            {
                HttpContext context = HttpContext.Current;
                if (context != null)
                {
                    String filePath = context.Server.MapPath(this.SkinPath);
                    return System.IO.File.Exists(filePath);
                }
                return true;
            }
        }

        public override ControlCollection Controls
        {
            get
            {
                this.EnsureChildControls();
                return base.Controls;
            }
        }
        public override void DataBind()
        {
            this.EnsureChildControls();
        }
        public override void RenderBeginTag(HtmlTextWriter writer)
        {

        }
        public override void RenderEndTag(HtmlTextWriter writer)
        {

        }
        public override Page Page
        {
            get
            {
                if (base.Page == null)
                {
                    base.Page = HttpContext.Current.Handler as System.Web.UI.Page;
                }
                return base.Page;
            }
            set
            {
                base.Page = value;
            }
        }
        public override Control FindControl(string id)
        {
            Control ctrl = base.FindControl(id);
            if (ctrl == null && this.Controls.Count == 1)
            {
                ctrl = this.Controls[0].FindControl(id);
            }
            return ctrl;
        }
        protected override void CreateChildControls()
        {
            this.Controls.Clear();
            if (!LoadSkinControl())
            {
                throw new Exception("Skin not found.");
            }
            AttachChildControls();
        }
        protected virtual bool LoadSkinControl()
        {
            if (SkinFileExists && this.Page != null)
            {
                Control skin = this.Page.LoadControl(this.SkinPath);
                skin.ID = "_";
                this.Controls.Add(skin);
                return true;
            }
            return false;
        }
        protected virtual void AttachChildControls()
        { 
            
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -