using
System;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
Microsoft.SharePoint.WebPartPages;
using
Microsoft.SharePoint.WebControls;
using
Microsoft.SharePoint;
using
Microsoft.SharePoint.Utilities;
namespace
WebPartContentEditor.VisualWebPart_ContentEditor
{
public
partial
class
VisualWebPart_ContentEditorUserControl : UserControl
{
public
VisualWebPart_ContentEditor ParentWebPart
{
get
{
return
this
.Parent
as
VisualWebPart_ContentEditor; }
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
base
.OnInit(e);
string
strUpdatedContent =
this
.Page.Request.Form[
this
.ClientID +
"content"
];
ParentWebPart.SavePoperty(strUpdatedContent);
if
(SPContext.Current.FormContext.FormMode == SPControlMode.Display)
{
this
.divDisplayTexte.InnerHtml =
this
.ParentWebPart.Content;
}
if
(SPContext.Current.FormContext.FormMode == SPControlMode.Edit)
{
this
.divTexte.Visible =
true
;
this
.divTexte.InnerHtml =
this
.ParentWebPart.Content;
}
}
protected
void
Page_PreRender(
object
sender, EventArgs e)
{
if
(SPContext.Current.FormContext.FormMode == SPControlMode.Edit)
{
this
.Page.ClientScript.RegisterHiddenField(
this
.ClientID +
"content"
, divTexte.InnerHtml);
this
.divDisplayTexte.Visible =
false
;
this
.divEmptyPanel.Style.Add(HtmlTextWriterStyle.Cursor,
"hand"
);
this
.divEmptyPanel.Controls.Add(
new
LiteralControl(
"Click here to Edit"
));
this
.divEmptyPanel.Style.Add(HtmlTextWriterStyle.TextAlign,
"center"
);
this
.divTexte.Attributes[
"RteRedirect"
] =
this
.divTexte.ClientID;
this
.divTexte.Attributes[
"class"
] =
"ms-rtestate-write ms-rtestate-field"
;
this
.divTexte.Attributes[
"contentEditable"
] =
"true"
;
this
.divTexte.Attributes[
"InputFieldId"
] =
this
.ClientID +
"content"
;
this
.divTexte.Attributes[
"EmptyPanelId"
] =
this
.divEmptyPanel.ClientID;
this
.divTexte.Attributes[
"ContentEditor"
] =
"True"
;
this
.divTexte.Attributes[
"AllowScripts"
] =
"True"
;
this
.divTexte.Attributes[
"AllowWebParts"
] =
"False"
;
string
script1 =
"RTE.RichTextEditor.transferContentsToInputField('"
+
SPHttpUtility.EcmaScriptStringLiteralEncode(
this
.divTexte.ClientID) +
"');"
;
Page.ClientScript.RegisterOnSubmitStatement(GetType(),
"transfer"
+
this
.divTexte.ClientID, script1);
SPRibbon current = SPRibbon.GetCurrent(
this
.Page);
if
(current !=
null
)
{
current.MakeTabAvailable(
"Ribbon.EditingTools.CPEditTab"
);
current.MakeTabAvailable(
"Ribbon.Image.Image"
);
current.MakeTabAvailable(
"Ribbon.EditingTools.CPInsert"
);
current.MakeTabAvailable(
"Ribbon.Link.Link"
);
current.MakeTabAvailable(
"Ribbon.Table.Layout"
);
current.MakeTabAvailable(
"Ribbon.Table.Design"
);
if
(!(
this
.Page
is
WikiEditPage))
{
current.TrimById(
"Ribbon.EditingTools.CPEditTab.Layout"
);
current.TrimById(
"Ribbon.EditingTools.CPEditTab.EditAndCheckout"
);
}
}
ScriptLink.RegisterScriptAfterUI(
this
.Page,
"SP.UI.Rte.js"
,
false
);
ScriptLink.RegisterScriptAfterUI(
this
.Page,
"SP.js"
,
false
);
ScriptLink.RegisterScriptAfterUI(
this
.Page,
"SP.Runtime.js"
,
false
);
}
}
}
}