More in this section
Forums / Bugs & Issues / RadEditor.Content returning Empty

RadEditor.Content returning Empty

The forums are in read-only mode. In case that you want to directly contact the Progress Sitefinity team use the support center. In our Google Plus group you can find more than one thousand Sitefinity developers discussing different topics. For the Stack Overflow threads don’t forget to use the “Sitefinity” tag.
1 posts, 0 answered
  1. Renato
    Renato avatar
    2 posts
    Registered:
    07 Jun 2013
    24 Jul 2013
    Link to this post
    Hi, I created a User Control where the RadEditor.Content is returning Empty

    COMMENTS.ASCX
    <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
     
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     
    <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     
    <%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
     
    <%@ Import Namespace="Microsoft.SharePoint" %>
     
    <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserControl1.ascx.cs" Inherits="Expertime.PublishingComments.CONTROLTEMPLATES.UserControl1" %>
     
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI, Version=2013.2.611.45, Culture=Neutral, PublicKeyToken=121fae78165ba3d4" %>
     
    <%@Register TagPrefix="SharePointPortalControls" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
     
    <style type="text/css">
     
        /* The following CSS needs to be copied to the page to produce textbox-like RadEditor */ .reWrapper_corner, .reWrapper_center {
     
            display: none !important;
     
        }
     
      
     
        .reLeftVerticalSide, .reRightVerticalSide, .reToolZone, .reToolCell {
     
            background: white !important;
     
        }
     
      
     
        .reContentCell {
     
            border-width: 0 !important;
     
        }
     
      
     
        .RadEditor {
     
            filter: chroma(color=c2dcf0);
     
        }
     
    </style>
     
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
     
      
     
        <script type="text/javascript">
     
            var currentLoadingPanel = null;
     
            var btSubmit = null;
     
            function RequestStart(sender, args) {
     
                currentLoadingPanel = $find("<%= RadAjaxLoadingPanel1.ClientID%>");
     
                btSubmit = "<%= panlcomments.ClientID %>";
     
                //show the loading panel over the updated control
     
                currentLoadingPanel.show(btSubmit);
     
      
     
            }
     
            function ResponseEnd() {
     
                //hide the loading panel and clean up the global variables
     
                currentLoadingPanel.hide(btSubmit);
     
                //clear
     
                btSubmit.SetHtml("");
     
                currentLoadingPanel = null;
     
                btSubmit = null;
     
      
     
      
     
            }
     
        </script>
     
    </telerik:RadCodeBlock>
     
    <div class="ftv-wp-title">
     
         <asp:Literal runat="server" ID="HeaderTitle"></asp:Literal>
     
            </div>
     
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
     
        <AjaxSettings>
     
            <telerik:AjaxSetting AjaxControlID="btSubmit">
     
                <UpdatedControls>
     
      
     
                    <telerik:AjaxUpdatedControl ControlID="newCommentLiteral" LoadingPanelID="RadAjaxLoadingPanel1" />
     
                    <telerik:AjaxUpdatedControl ControlID="panlcomments" LoadingPanelID="RadAjaxLoadingPanel1" />
     
                </UpdatedControls>
     
            </telerik:AjaxSetting>
     
        </AjaxSettings>
     
        <ClientEvents OnRequestStart="RequestStart" OnResponseEnd="ResponseEnd" />
     
    </telerik:RadAjaxManager>
     
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" BackgroundPosition="Center" Skin="Vista">
     
    </telerik:RadAjaxLoadingPanel>
     
      
     
      
     
      
     
    <div class="ftv-content-social ftv-type2">
     
                                            <div class="ftv-comments">
     
                                                <a class="ftv-entry-comments" ><asp:Label runat="server" ID="NbCommentsLbl"/></a>
     
                                            </div>
     
                                            <div class="ftv-notes">
     
                                                  <a>Note</a>
     
            <SharePointPortalControls:AverageRatingFieldControl ID="PageRatingControl" FieldName="AverageRating"    runat="server"/>
     
                                            </div>
     
    </div>
     
    <div class="Exp-Comments" id="ExpComments">
     
         <asp:Literal ID="existingComments" runat="server"></asp:Literal>
     
    </div>
     
      
     
      
     
      
     
    <asp:Literal ID="newCommentLiteral" runat="server"></asp:Literal>
     
    <!-- on masque le control pour les anonymes -->
     
      
     
    <asp:Panel ID="panlcomments" runat="server">
     
        <div class="exp-comment-message" style="display: none;">
     
            <asp:Label Visible="false" ID="lblMessage" Text="Messages :" runat="server"></asp:Label></div>
     
      
     
        <div class="ftv-wp-title ftv-reagir">laissez un commentairex</div>
     
      
     
        <div class="ftv-reagir-comment">
     
            <telerik:RadEditor ID="reComment" runat="server" EditModes="Design" ToolbarMode="ShowOnFocus" ToolsWidth="170px" Width="412px" Height="72px">
     
      
     
                <Tools>
     
                    <telerik:EditorToolGroup>
     
                        <telerik:EditorTool Name="Bold" />
     
                        <telerik:EditorTool Name="Italic" />
     
                        <telerik:EditorTool Name="StrikeThrough" />
     
                        <telerik:EditorTool Name="Underline" />
     
                        <telerik:EditorTool Name="InsertUnorderedList" />
     
                        <telerik:EditorTool Name="InsertOrderedList" />
     
                    </telerik:EditorToolGroup>
     
                </Tools>
     
            </telerik:RadEditor>
     
            <span class="exp-bout-comm">
     
                <asp:Button ID="btSubmit" runat="server" Text="Valider" OnClick="btSubmit_Click" /></span>
     
            <%--<span class="exp-bout-comm"><asp:Button ID="btSubmit" runat="server" Text="Valider" OnClick="btSubmit_Click" CssClass="Exp-Comment-Submit"/></span>--%>
     
        </div>
     
    </asp:Panel>
     
      
     
    <asp:Panel ID="pnelAnonyme" runat="server">
     
    </asp:Panel>

    COMMENTS.CS
    using System;
     
    using System.Web.UI;
     
    using System.Web.UI.WebControls;
     
    using System.Web.UI.WebControls.WebParts;
     
    using System.Collections.Generic;
     
    using System.Linq;
     
    using System.Text;
     
    using System.Web;
     
    using Microsoft.SharePoint;
     
    using Microsoft.SharePoint.Publishing;
     
    using Telerik.Web.UI;
     
    using System.Data;
     
      
     
      
     
    namespace Expertime.PublishingComments.CONTROLTEMPLATES
     
    {
     
        public partial class UserControl1 : UserControl
     
        {
     
            #region Controls
     
            private string _ValidationGroupId;
     
            private ValidationSummary _ErrorContainer;
     
            private ScriptManager _AjaxManager;
     
            #endregion
     
      
     
            #region vars & cons
     
            const string CommentListUrl = "ExpertimePublishingComments", CommentListTitle = "Expertime Comments";
     
            const string ExpertimePublishingCommentSiteFeatureId = "68af5cec-59a1-4105-97a7-3fb7b68fbf46";
     
            const string FieldName_ListItemId = "ListItemId", FieldName_CommentBody = "CommentBody";
     
            #endregion
     
      
     
            #region properties
     
            public ScriptManager AjaxManager
     
            {
     
      
     
                get { return _AjaxManager; }
     
      
     
                set { _AjaxManager = value; }
     
      
     
            }
     
            #endregion
     
      
     
            protected override void CreateChildControls()
     
            {
     
                base.CreateChildControls();
     
                if (ScriptManager.GetCurrent(Page) == null)
     
                {
     
                    ScriptManager sMgr = new ScriptManager();
     
                    Page.Form.Controls.AddAt(0, sMgr);
     
      
     
                }
     
                string formOnSubmitAtt = this.Page.Form.Attributes["onsubmit"];
     
                try
     
                {
     
                    if (!string.IsNullOrEmpty(formOnSubmitAtt) && formOnSubmitAtt == "return _spFormOnSubmitWrapper();")
     
                    {
     
      
     
                        Page.Form.Attributes["onsubmit"] = "_spFormOnSubmitWrapper();";
     
      
     
                    }
     
                }
     
                catch { }
     
                try
     
                {
     
                    //if (btSubmit == null)
     
                    //    btSubmit = this.FindControl("btSubmit") as Button;
     
      
     
                    //if (reComment == null)
     
                    //    reComment = this.FindControl("reComment") as RadEditor;
     
      
     
                    //if (existingComments == null)
     
                    //    existingComments = this.FindControl("existingComments") as Literal;
     
      
     
                    //if (gv1 == null)
     
                    //    gv1 = this.FindControl("gv1") as GridView;
     
      
     
                    //if (newCommentLiteral == null)
     
                    //    newCommentLiteral = this.FindControl("newCommentLiteral") as Literal;
     
      
     
                    GetExistingComments();
     
                }
     
                catch (Exception exc)
     
                {
     
                    existingComments.Text = string.Format("<span class=\"Exp-Error\">{0}</span>", exc.Message);
     
                }
     
                if (SPContext.Current.Web.CurrentUser == null)
     
                {
     
                    panlcomments.Visible = false;
     
                    pnelAnonyme.Visible = true;
     
                }
     
                else
     
                {
     
                    panlcomments.Visible = true;
     
                    pnelAnonyme.Visible = false;
     
                }
     
                if (!this.Controls.Contains(_ErrorContainer))
     
                {
     
                    _ValidationGroupId = Guid.NewGuid().ToString();
     
                    _ErrorContainer = new ValidationSummary();
     
                    _ErrorContainer.ID = "_ErrorContainer";
     
                    _ErrorContainer.ValidationGroup = _ValidationGroupId;
     
                    _ErrorContainer.BorderStyle = BorderStyle.Solid;
     
                    _ErrorContainer.BorderWidth = Unit.Pixel(3);
     
                    _ErrorContainer.BorderColor = System.Drawing.Color.Red;
     
                    this.Controls.Add(_ErrorContainer);
     
                }
     
      
     
                Literal HeaderTitle = this.FindControl("HeaderTitle") as Literal;
     
                if (HeaderTitle == null) throw new ArgumentNullException("le controle HeaderTitle n'existe pas");
     
      
     
                if (HttpContext.Current.User.Identity.IsAuthenticated)
     
                    HeaderTitle.Text = "Réagir";
     
                else
     
                {
     
                    HeaderTitle.Text = "<div class='ftv-wp-title ftv-title-separator'>Réagir</div>" +
     
                                       "<div class='ftv-offline'><a><h6>Connectez-vous</h6> pour réagir</a></div>";
     
                }
     
      
     
            }
     
      
     
            private void GetExistingComments()
     
            {
     
                Guid siteId = SPContext.Current.Site.ID, webId = SPContext.Current.Web.ID;
     
                SPSecurity.RunWithElevatedPrivileges(delegate()
     
                {
     
                    using (SPSite elevatedSite = new SPSite(siteId))
     
                    {
     
                        using (SPWeb elevatedWeb = elevatedSite.OpenWeb(webId))
     
                        {
     
                            try
     
                            {
     
                                string prefixUrl = elevatedWeb.ServerRelativeUrl == "/" ? "/" : elevatedWeb.ServerRelativeUrl + "/";
     
                                SPList commentList = elevatedWeb.GetList(prefixUrl + CommentListUrl);
     
                                SPQuery query = new SPQuery();
     
                                string queryString = @"<OrderBy>
     
                                                          <FieldRef Name=""Created"" Ascending=""True"" />
     
                                                       </OrderBy>
     
                                                       <Where>
     
                                                          <Eq>
     
                                                             <FieldRef Name=""ListItemId"" />
     
                                                             <Value Type=""Text"">{0}</Value>
     
                                                          </Eq>
     
                                                       </Where>";
     
                                query.Query = string.Format(queryString, SPContext.Current.ListItem.UniqueId.ToString());
     
                                SPListItemCollection items = commentList.GetItems(query);
     
                                StringBuilder sb = new StringBuilder();
     
      
     
                                var NbCommentsLbl = this.FindControl("NbCommentsLbl") as Label;
     
                                if (NbCommentsLbl == null) throw new ArgumentNullException("le controle NbCommentsLbl n'existe pas");
     
      
     
                                if (items.Count <= 1)
     
                                    NbCommentsLbl.Text = String.Format("{0} commentaire", items.Count.ToString());
     
                                else
     
                                    NbCommentsLbl.Text = String.Format("{0} commentaires", items.Count.ToString());
     
      
     
      
     
                                //  SPField fieldListItemId = commentList.Fields.GetFieldByInternalName(FieldName_ListItemId);
     
                                SPField fieldCommentBody = commentList.Fields.GetFieldByInternalName(FieldName_CommentBody);
     
                                SPField fieldCreatedBy = commentList.Fields.GetFieldByInternalName("Author");
     
                                SPField fieldCreated = commentList.Fields.GetFieldByInternalName("Created");
     
      
     
                                foreach (SPListItem item in items)
     
                                {
     
                                    sb.Append("<div class=\"Exp-Comment\">");
     
      
     
                                    sb.Append("<div class=\"Exp-Comment-Header\">");
     
                                    sb.Append("<div class=\"Exp-Comment-Author\">");
     
                                    SPFieldUserValue fieldValue = fieldCreatedBy.GetFieldValue(item[fieldCreatedBy.Id].ToString()) as SPFieldUserValue;
     
                                    string userDisplayName = fieldValue.User.Name;
     
                                    sb.AppendFormat("<a style=\"cursor:text; TEXT-DECORATION: none;\">Publié par {0}</a>", userDisplayName);
     
                                    sb.Append("</div>");
     
                                    sb.Append("<div class=\"Exp-Comment-Date\">");
     
                                    sb.Append(item[fieldCreated.Id].ToString());
     
                                    sb.Append("</div>");
     
                                    sb.Append("</div>");
     
      
     
                                    sb.Append("<div class=\"Exp-Comment-Body\">");
     
                                    sb.Append(item[fieldCommentBody.Id].ToString());
     
                                    sb.Append("</div>");
     
      
     
                                    sb.Append("</div>");
     
                                }
     
      
     
                                existingComments.Text = sb.ToString();
     
                            }
     
                            catch
     
                            {
     
                                //la liste n'existe pas
     
                                StringBuilder sb = new StringBuilder();
     
                                sb.Append("<div id=\"ExpComments\" class=\"Exp-Comments\">");
     
                                sb.Append("<div class=\"Exp-Comments-Number\"><span class=\"Exp-Comments-Number-Span\" >");
     
                                sb.AppendFormat("{0} commentaire ", "0");
     
                                sb.Append("</span></div>");
     
                                sb.Append("</div>");
     
                                existingComments.Text = sb.ToString();
     
                            }
     
                        }
     
                    }
     
                });
     
            }
     
      
     
            protected void btSubmit_Click(object sender, EventArgs e)
     
            {
     
      
     
                try
     
                {
     
                    SPSecurity.RunWithElevatedPrivileges(delegate()
     
                    {
     
                        using (SPSite elevatedSite = new SPSite(SPContext.Current.Site.Url))
     
                        {
     
                            using (SPWeb elevatedWeb = elevatedSite.OpenWeb(SPContext.Current.Web.ServerRelativeUrl))
     
                            {
     
                                if (reComment.Content.Trim() != "")
     
                                {
     
                                    SPList commentList = null;
     
                                    try
     
                                    {
     
                                        string prefixUrl = elevatedWeb.ServerRelativeUrl == "/" ? "/" : elevatedWeb.ServerRelativeUrl + "/";
     
                                        commentList = elevatedWeb.GetList(prefixUrl + CommentListUrl);
     
                                    }
     
                                    catch
     
                                    {
     
                                    }
     
                                    //if the comment list cannot be found we create it
     
                                    if (commentList == null)
     
                                    {
     
                                        elevatedWeb.AllowUnsafeUpdates = true;
     
                                        Guid newListId = elevatedWeb.Lists.Add(CommentListTitle, "", CommentListUrl, ExpertimePublishingCommentSiteFeatureId, 100, "", SPListTemplate.QuickLaunchOptions.Off);
     
                                        commentList = elevatedWeb.Lists[newListId];
     
                                        elevatedWeb.AllowUnsafeUpdates = false;
     
                                    }
     
                                    SPList list = commentList;
     
      
     
      
     
                                    elevatedWeb.AllowUnsafeUpdates = true;
     
                                    //creating the comment item
     
                                    SPListItem newComment = list.Items.Add();
     
                                    SPField fieldListItemId = list.Fields.GetFieldByInternalName(FieldName_ListItemId);
     
                                    SPField fieldCommentBody = list.Fields.GetFieldByInternalName(FieldName_CommentBody);
     
                                    SPField fieldCreatedBy = list.Fields.GetFieldByInternalName("Author");
     
                                    newComment[fieldListItemId.Id] = SPContext.Current.ListItem.UniqueId.ToString();
     
                                    newComment[fieldCommentBody.Id] = reComment.Content;
     
                                    SPFieldUserValue val = new SPFieldUserValue(SPContext.Current.Web, SPContext.Current.Web.CurrentUser.ID, SPContext.Current.Web.CurrentUser.LoginName);
     
                                    newComment[fieldCreatedBy.Id] = val;
     
                                    newComment.SystemUpdate();
     
      
     
                                    elevatedWeb.AllowUnsafeUpdates = false;
     
      
     
                                    //updating the new comment in the display
     
                                    StringBuilder sb = new StringBuilder();
     
                                    sb.Append("<div class=\"Exp-Comment\">");
     
      
     
                                    sb.Append("<div class=\"Exp-Comment-Header\">");
     
                                    sb.Append("<div class=\"Exp-Comment-Author\">");
     
      
     
                                    string userDisplayName = SPContext.Current.Web.CurrentUser.Name;
     
                                    string userEmail = SPContext.Current.Web.CurrentUser.Email;
     
                                    sb.AppendFormat("<a style=\"cursor:text; TEXT-DECORATION: none;\">{1}</a>", userEmail, userDisplayName);
     
                                    sb.Append("</div>");
     
                                    sb.Append("<div class=\"Exp-Comment-Date\">");
     
                                    sb.Append(DateTime.Now.ToLongDateString());
     
                                    sb.Append("</div>");
     
                                    sb.Append("</div>");
     
                                    sb.Append("<div class=\"Exp-Comment-Body\">");
     
                                    sb.Append(reComment.Content);
     
                                    sb.Append("</div>");
     
      
     
                                    sb.Append("</div>");
     
      
     
                                    newCommentLiteral.Text = sb.ToString();
     
                                    //reComment.Content = string.Empty;
     
                                    //btSubmit.Visible = false;
     
      
     
                                    //reComment.Visible = false;
     
                                    //btSubmit.Visible = false;
     
                                    //lblMessage.Visible = false;
     
                                }
     
                            }
     
                        }
     
                    });
     
                }
     
                catch
     
                {
     
                }
     
            }
     
      
     
      
     
      
     
            public void RegisterError(string message)
     
            {
     
      
     
                if (this.Controls.Contains(_ErrorContainer))
     
                {
     
      
     
                    //this way of generating a unique control id is used in some of the OOB web parts
     
      
     
                    int uniqueCounter;
     
      
     
                    if (HttpContext.Current.Items["GetUniqueControlId"] != null)
     
                    {
     
      
     
                        uniqueCounter = (int)HttpContext.Current.Items["GetUniqueControlId"];
     
      
     
                    }
     
      
     
                    else
     
                    {
     
      
     
                        uniqueCounter = 0;
     
      
     
                    }
     
      
     
                    uniqueCounter++;
     
      
     
                    HttpContext.Current.Items["GetUniqueControlId"] = uniqueCounter;
     
      
     
      
     
      
     
                    //create a custom validator to register the current error message with the ValidationSummary control
     
      
     
                    CustomValidator cv = new CustomValidator();
     
      
     
                    cv.ID = string.Concat("_Error_", uniqueCounter);
     
      
     
                    cv.ValidationGroup = _ValidationGroupId;
     
      
     
                    cv.Display = ValidatorDisplay.None;
     
      
     
                    cv.IsValid = false;
     
      
     
                    cv.ErrorMessage = message;
     
      
     
      
     
      
     
                    this.Controls.Add(cv);
     
      
     
                }
     
      
     
                else
     
                {
     
      
     
                    //if RegisterError is called before the CreateChildControls override in AjaxBasePart then transfer the user to an error page using the SPUtility
     
      
     
                    Microsoft.SharePoint.Utilities.SPUtility.TransferToErrorPage("The CreateChildControls function of the AjaxBasePart has not been called.  You probably need to add \"base.CreateChildControls()\" to the top of your CreateChildControls override.");
     
      
     
                }
     
      
     
            }
     
            //protected void Page_Load(object sender, EventArgs e)
     
            //{
     
            //}
     
        }
     
    }


1 posts, 0 answered