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

📄 threadview.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

// TODO: Remove code that display help...

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;

namespace CommunityServer.Discussions.Controls 
{

    // *********************************************************************
    //  ThreadView
    //
    /// <summary>
    /// This server control is used to display top level threads. Note, a thread
    /// is a post with more information. The Thread class inherits from the Post
    /// class.
    /// </summary>
    /// 
    // ********************************************************************/
    public class ThreadView : SkinnedWebControl 
    {

        #region Member variables and constructor
        string skinFilename = "View-Threads.ascx";
        
        CSContext csContext = CSContext.Current;
        internal Forum forum;
        //Control threadDisplay;
        Control noThreadsToDisplay;
        internal Repeater announcements;
        internal Repeater threads;
        Pager pager;
        CurrentPage currentPage;
        ThreadSet threadSet;
        DateFilter dateFilter;
        SortThreadsBy sortBy = SortThreadsBy.LastPost;
        SortOrder sortOrder = SortOrder.Ascending;
        ThreadViewMode mode = ThreadViewMode.Default;
        Label forumName;
        Label forumDescription;
		Label forumFilterText;
        //EmailNotificationDropDownList ddlTracking;
        ThreadSortDropDownList threadSortddl;
        SortOrderDropDownList sortOrderddl;
		ForumDropDownList forumFilterddl;
        Button sortButton;
        Button rememberSettingsButton;
        HideReadPostsDropDownList hideReadPosts;
        FilterUsersDropDownList filterUsers;
		

        // *********************************************************************
        //  ThreadView
        //
        /// <summary>
        /// The constructor simply checks for a ForumID value passed in via the
        /// HTTP POST or GET.
        /// properties.
        /// </summary>
        /// 
        // ********************************************************************/
        public ThreadView() 
        {

            try 
            {

                int modeFromQS = Int32.Parse(csContext.Context.Request.QueryString["mode"]);

                // What mode are we running in?
                //
                if (modeFromQS > 0)
                    mode = (ThreadViewMode) modeFromQS;

            } 
            catch 
            {
                mode = ThreadViewMode.Default;
            }

            if (SkinFilename == null)
                SkinFilename = skinFilename;

        }



        #endregion

        #region Skin initialization
        // *********************************************************************
        //  Initializeskin
        //
        /// <summary>
        /// Initializes the user control loaded in CreateChildControls. Initialization
        /// consists of finding well known control names and wiring up any necessary events.
        /// </summary>
        /// 
        // ********************************************************************/ 
        protected override void InitializeSkin(Control skin) 
        {

            // Find the controls we need to databind
            //
            forumName = (Label) skin.FindControl("ForumName");
            forumDescription = (Label) skin.FindControl("ForumDescription");
            //threadDisplay = skin.FindControl("ThreadDisplay");
            noThreadsToDisplay = skin.FindControl("NoThreadsToDisplay");
            filterUsers = (FilterUsersDropDownList) skin.FindControl("FilterUsers");
            threads = (Repeater) skin.FindControl("Threads");
            announcements = (Repeater) skin.FindControl("Announcements");
            hideReadPosts = (HideReadPostsDropDownList) skin.FindControl("HideReadPosts");
            threadSortddl = (ThreadSortDropDownList) skin.FindControl("SortThreads");
            sortOrderddl = (SortOrderDropDownList) skin.FindControl("SortOrder");
			forumFilterddl = (ForumDropDownList) skin.FindControl("ForumDropDownList1");
			forumFilterText = (Label) skin.FindControl("ForumFilterText");
	        
            announcements.ItemDataBound += new RepeaterItemEventHandler( Threads_ItemDataBound );
            threads.ItemDataBound += new RepeaterItemEventHandler( Threads_ItemDataBound );

            // Ensure we have a valid forum
            //
            try 
            {
                switch (mode) 
                {
                    case ThreadViewMode.Active:
						forumFilterddl.SelectedIndexChanged += new EventHandler(forumFilterddl_Changed);
                        forum = new Forum(forumFilterddl.SelectedForum);
                        forumName.Text = ResourceManager.GetString("ViewActiveThreads_Title");
                        forumDescription.Text = ResourceManager.GetString("ViewActiveThreads_Description");
                        break;

                    case ThreadViewMode.Unanswered:
						forumFilterddl.SelectedIndexChanged += new EventHandler(forumFilterddl_Changed);
                        forum = new Forum(forumFilterddl.SelectedForum);
                        forumName.Text = ResourceManager.GetString("ViewUnansweredThreads_Title");
                        forumDescription.Text = ResourceManager.GetString("ViewUnansweredThreads_Description");
                        break;

                    case ThreadViewMode.NotRead:
						forumFilterddl.SelectedIndexChanged += new EventHandler(forumFilterddl_Changed);
                        forum = new Forum(forumFilterddl.SelectedForum);
                        forumName.Text = ResourceManager.GetString("ViewNotReadThreads_Title");
                        forumDescription.Text = ResourceManager.GetString("ViewNotReadThreads_Description");
                        break;


                    case ThreadViewMode.PrivateMessages:
                        //NOTE: TODO: 0 can not be used to hard code Private Forum
                        forum = Forums.GetForum(0);
                        forumName.Text = ResourceManager.GetString("PrivateMessages_Title");
                        forumDescription.Text = ResourceManager.GetString("PrivateMessages_Description");
                        break;

					case ThreadViewMode.MyForums:
						//don't need filter when viewing My Forums
						forumFilterddl.Visible = false;
						forumFilterText.Visible = false;
						forumName.Text = ResourceManager.GetString("ViewMyForumsThreads_Title");
						forumDescription.Text = ResourceManager.GetString("ViewMyForumsThreads_Description");
						break;

                    default:
						//don't need filter when viewing a forum by default
						forumFilterddl.Visible = false;
						forumFilterText.Visible = false;

                        int forumID = csContext.ForumID;

                        if (forumID > 0) 
                        {
                            forum = Forums.GetForum(forumID, true, true);
							Permissions.AccessCheck(forum, Permission.View, CSContext.Current.User);
                            forumName.Text = forum.Name;
                            forumDescription.Text = forum.Description;
                        }
                        break;

                }
            } 
            catch( Exception ex )
            {
                throw new CSException(CSExceptionType.SectionNotFound, csContext.ForumID.ToString(), ex );

            }

            // Ensure we have an authenticated user if the user is asking for the private messages
            //
            if ((csContext.ForumID == 0) && (csContext.User.IsAnonymous))
                throw new CSException(CSExceptionType.SectionNotFound, csContext.ForumID.ToString());

            sortButton = (Button) skin.FindControl("SortThreadsButton");
            if (sortButton != null) 
            {
                sortButton.Text = ResourceManager.GetString("ViewThreads_SortThreads");
                sortButton.Click += new EventHandler(Sort_Changed);
            }


            rememberSettingsButton = (Button) skin.FindControl("RememberSettingsButton");
            if (rememberSettingsButton != null) 
            {
                rememberSettingsButton.Text = ResourceManager.GetString("ViewThreads_RememberSettings");
                rememberSettingsButton.Click += new EventHandler(RememberSortSettings_Click);
            }

            // Subscribe to the date filter's changed event
            //
            dateFilter = (DateFilter) skin.FindControl("DateFilter");

            if (dateFilter != null)
                dateFilter.DateChanged += new EventHandler(Sort_Changed);
            else
                dateFilter = new DateFilter();

            // Find the Pager and current page controls
            //
            pager = (Pager) skin.FindControl("Pager");
            currentPage = (CurrentPage) skin.FindControl("CurrentPage");

            // Do we have any sortBy / sortOrder data?
            //
            SetSort();

            // Do we have any rembered settings to apply?
            if (!csContext.User.IsAnonymous) 
            {
                UserCookie cookie = new UserCookie(csContext.User);

                ForumUserOptions options = cookie.GetForumOptions(csContext.ForumID);

                if (options.HasSettings) 
                {
                    
                    dateFilter.Items.FindByValue( ((int) options.DateFilter).ToString() ).Selected = true;
                    
                    if (hideReadPosts != null)
                        hideReadPosts.SelectedValue = options.HideReadPosts;

                    if (filterUsers != null)
                        filterUsers.SelectedValue = options.UserFilter;

                    threadSortddl.SelectedValue = options.SortBy;
                    sortOrderddl.SelectedValue = options.SortOrder;

                }

            } 
            else if (mode != ThreadViewMode.Default) 
            {
//                if (!csContext.User.IsAnonymous)
//                    ddlTracking.Visible = false;
            }

⌨️ 快捷键说明

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