itemdate.cs

来自「一个ASP.NET下的中文内容管理和社区系统」· CS 代码 · 共 139 行

CS
139
字号
namespace ASPNET.StarterKit.Communities {
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.ComponentModel;
	using System.Diagnostics;



    //*********************************************************************
    //
    // ItemDate Class
    //
    // Abstract class for displaying a date in a template.
    // This class handles issues with time conversions.
    //
    //*********************************************************************

	public abstract class ItemDate : WebControl {

        private string _dateFormatString = "{0:D}";
        private bool _displayTimeZone = true;



        //*********************************************************************
        //
        // Date Property
        //
        // Stores date in view state.
        //
        //*********************************************************************
        public DateTime Date {
            get { return (DateTime)ViewState["Date"]; }
            set { ViewState["Date"] = value; }
        }



        //*********************************************************************
        //
        // DisplayTimeZone Property
        //
        // Determines whether time zone is displayed.
        //
        //*********************************************************************
        public bool DisplayTimeZone {
            get { return _displayTimeZone; }
            set { _displayTimeZone = value; }
        }



        //*********************************************************************
        //
        // DateFormatString Property
        //
        // Enables the date to be formatted.
        //
        //*********************************************************************
        public string DateFormatString {
            get {return _dateFormatString;}
            set {_dateFormatString = value;}
        }



        //*********************************************************************
        //
        // OnDataBinding Method
        //
        // Get the date commented from container.
        //
        //*********************************************************************
        override protected void OnDataBinding(EventArgs e) {
            ContentItem item;

            if (NamingContainer is ContentItem)
                item = (ContentItem)NamingContainer;
            else
                item = (ContentItem)NamingContainer.NamingContainer;


            ContentInfo objContentInfo = (ContentInfo)item.DataItem;
            AssignContentItem(objContentInfo);
        }



        //*********************************************************************
        //
        // AssignContentItem Method
        //
        // Override this method to add an item to the Date property.
        //
        //*********************************************************************
 
         abstract protected void AssignContentItem(ContentInfo contentInfo);



        //*********************************************************************
        //
        // LocalTimeZoneAbbreviation Property
        //
        // Get the abbreviated name of server time zone.
        //
        //*********************************************************************
        private string LocalTimeZoneAbbreviation {
            get {
                string[] splitTZ = TimeZone.CurrentTimeZone.StandardName.Split(' ');
                string _abb = String.Empty;
                foreach (string word in splitTZ)
                    _abb += word[0];
                return _abb;    
            }
        }



        //*********************************************************************
        //
        // RenderContents Method
        //
        // Render the date.
        // Note: We convert the date to the local server time.
        //
        //*********************************************************************
        override protected void RenderContents(HtmlTextWriter writer) {
            writer.Write(String.Format(_dateFormatString, Date.ToLocalTime() ));    
            if (_displayTimeZone)
                writer.Write( String.Format(" ({0})", LocalTimeZoneAbbreviation));
        }


    }
}

⌨️ 快捷键说明

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