?? itemeditcontent.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();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -