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

📄 itemeditcontent.cs

📁 一个ASP.NET下的中文内容管理和社区系统
💻 CS
字号:
namespace ASPNET.StarterKit.Communities {
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.ComponentModel;



    //*********************************************************************
    //
    // ItemEditContent Class
    //
    // Enables users with proper permissions to edit content displayed in
    // a contentlist control. This control displays an edit, delete, sort
    // up, and sort down button.
    //
    //*********************************************************************

    public class ItemEditContent : WebControl, IPostBackEventHandler {

        public event EventHandler Sorted;

        private UserInfo objUserInfo;

        private string _editUrl = String.Empty;
        private string _editIcon = "~/Communities/Common/Images/Admin/Edit.gif";

        private string _deleteUrl = "ContentPages_DeleteContentPage.aspx?id={0}&ReturnUrl={1}";
        private string _deleteIcon = "~/Communities/Common/Images/Admin/Delete.gif";

        private string _upIcon = "~/Communities/Common/Images/Admin/up.gif";
        private string _downIcon = "~/Communities/Common/Images/Admin/dn.gif";




        //*********************************************************************
        //
        // OnEditContent Constructor
        //
        // In the constructor, assign a default style.
        //
        //*********************************************************************

        public ItemEditContent() : base(HtmlTextWriterTag.Table) {
            CssClass = "itemEditContent";
        }


        //*********************************************************************
        //
        // EditUrl Property
        //
        // The URL for the page for editing this content.
        //
        //*********************************************************************

        public string EditUrl {
            get { return _editUrl; }
            set { _editUrl = value; }
        }




        //*********************************************************************
        //
        // OnSorted Method
        //
        // When the sort order changes, we need to tell the ContentList control
        // which contains this control to rebind to its data source. So, we
        // bubble an event to the containing control as a notification.
        //
        //*********************************************************************

        protected virtual void OnSorted(EventArgs e) {
            if (Sorted != null)
                Sorted(this, e);
             
            RaiseBubbleEvent(this, e);
        }




        //*********************************************************************
        //
        // RaisePostBackEvent Method
        //
        // When a postback event happens, we know that it must be a sort event,
        // so we handle the sort event here.
        //
        //*********************************************************************

        public void RaisePostBackEvent(string eventArgument) {
            if (eventArgument == "up")
                ContentPageUtility.MoveContentUp( (int)ViewState["ContentPageID"]);
                
            if (eventArgument == "down") 
                ContentPageUtility.MoveContentDown( (int)ViewState["ContentPageID"]);

            OnSorted(EventArgs.Empty);
        }



        //*********************************************************************
        //
        // ReturnUrlHelper Property
        //
        // Returns the URL encoded path of the current page.
        //
        //*********************************************************************

        private string ReturnUrlHelper {
            get { return Context.Server.UrlEncode(Context.Request.RawUrl); }
        }




        //*********************************************************************
        //
        // LinkHelper Method
        //
        // Returns necessary javascript link for postback.
        //
        //*********************************************************************

        private string LinkHelper(string action, string actionImage) {
            return String.Format("<a id=\"{0}\" href=\"javascript:"+ Page.GetPostBackEventReference(this, action)+ "\">{1}</a>", UniqueID, actionImage);
        }



        //*********************************************************************
        //
        // OnDataBinding Method
        //
        // When databinding, get the contentpage id.
        //
        //*********************************************************************

        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;
            ViewState["ContentPageID"] = objContentInfo.ContentPageID;
        }



        //*********************************************************************
        //
        // Render Method
        //
        // Only render if the user has edit or delete permissions.
        //
        //*********************************************************************

        override protected void Render(HtmlTextWriter writer) {
            // Get UserInfo from context
            if (Context != null) {
                objUserInfo = (UserInfo)Context.Items["UserInfo"];
                
                if (objUserInfo.MayEdit || objUserInfo.MayDelete)
                    base.Render(writer);
            }
        }




        //*********************************************************************
        //
        // RenderContents Method
        //
        // Render the table and edit icons.
        //
        //*********************************************************************

        override protected void RenderContents(HtmlTextWriter writer) {

            // Get contentpageID
            int _contentPageID = (int)ViewState["ContentPageID"];

            // open table row
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            
            // Edit cell
            if (objUserInfo.MayEdit) {
                _editUrl = String.Format(_editUrl, _contentPageID);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Href, CommunityGlobals.CalculatePath(_editUrl));
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(String.Format("<img src=\"{0}\" border=\"0\" />", Page.ResolveUrl(_editIcon)));
                writer.RenderEndTag();
                writer.RenderEndTag();
            }
            

            // Delete cell
            if (objUserInfo.MayDelete) {
                _deleteUrl = String.Format(_deleteUrl, _contentPageID, "Default.aspx");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Href, CommunityGlobals.CalculatePath(_deleteUrl));
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(String.Format("<img src=\"{0}\" border=\"0\" />", Page.ResolveUrl(_deleteIcon)));
                writer.RenderEndTag();
                writer.RenderEndTag();
            }


            
            // Sort cells
            if (objUserInfo.MayEdit) {
                // up link
                _upIcon = String.Format("<img src=\"{0}\" border=\"0\" />", Page.ResolveUrl(_upIcon)); 
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(LinkHelper("up", _upIcon));
                writer.RenderEndTag();

                // down link
                _downIcon = String.Format("<img src=\"{0}\" border=\"0\" />", Page.ResolveUrl(_downIcon)); 
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(LinkHelper("down", _downIcon));
                writer.RenderEndTag();
            }

            
            writer.RenderEndTag();
        }
    

    }
}

⌨️ 快捷键说明

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