This is a migrated thread and some comments may be shown as answers.

Editor User Control with Ajax

1 Answer 44 Views
Editor
This is a migrated thread and some comments may be shown as answers.
Marc
Top achievements
Rank 1
Marc asked on 10 May 2013, 11:11 AM
Hi,

I have a problem trying to get the contents of a RadEditor located inside a User control through AJAX. The main page has a Radstrip with a multipage and each pageview has attached an instance of the User control with the editor and a button.

When the User control is created from code behind, some default contents are set from the main page to the Editor and it's working properly. But, if we change that text and we call a postback with AJAX, I cannot get the new value.

I am not sure how to proceed to get new values...

thanks.

The User Control:
<telerik:RadEditor ID="RadEditor1" runat="server" Width="100%" BorderStyle="None" EditModes="Design" ContentAreaCssFile="~/css/EditorContentArea.css" ContentAreaMode="iframe">
    <CssFiles>
        <telerik:EditorCssFile Value="~/css/EditorContentArea.css" />
    </CssFiles>
    <Tools>
        <telerik:EditorToolGroup Tag="MainToolbar">
            <telerik:EditorTool Name="AjaxSpellCheck" />
            <telerik:EditorTool Name="FindAndReplace" />
            <telerik:EditorSeparator />
            <telerik:EditorSplitButton Name="Undo">
            </telerik:EditorSplitButton>
            <telerik:EditorSplitButton Name="Redo">
            </telerik:EditorSplitButton>
            <telerik:EditorSeparator />
            <telerik:EditorTool Name="Cut" />
            <telerik:EditorTool Name="Copy" />
            <telerik:EditorTool Name="Paste" ShortCut="CTRL+V" />
        </telerik:EditorToolGroup>
        <telerik:EditorToolGroup Tag="Formatting">
            <telerik:EditorTool Name="Bold" />
            <telerik:EditorTool Name="Italic" />
            <telerik:EditorTool Name="Underline" />
            <telerik:EditorSeparator />
            <telerik:EditorSplitButton Name="ForeColor">
            </telerik:EditorSplitButton>
            <telerik:EditorSplitButton Name="BackColor">
            </telerik:EditorSplitButton>
            <telerik:EditorSeparator />
            <telerik:EditorDropDown Name="FontName">
            </telerik:EditorDropDown>
            <telerik:EditorDropDown Name="RealFontSize">
            </telerik:EditorDropDown>
        </telerik:EditorToolGroup>
    </Tools>
    <Content>
</Content>
</telerik:RadEditor>
<div style="float:left;">
<telerik:RadSpell ID="RadSpell1" runat="server" ControlToCheck="RadEditor1" ButtonType="PushButton" AllowAddCustom="true" CssClass="floatL" />  
<telerik:RadButton ID="RadButton1" runat="server" Text="Save" Height="22px" />
</div>

User Control Code behind:
Imports Telerik.Web.UI
 
Public Delegate Sub RadButton1_Click(sender As Object, e As System.EventArgs)
 
Public Class productAttributesEditor
    Inherits System.Web.UI.UserControl
    Public Event SaveClick As RadButton1_Click
 
    Public singleLang As String
 
    Public Property RadEditor() As RadEditor
        Get
            Return RadEditor1
        End Get
        Set(value As RadEditor)
            RadEditor1 = value
        End Set
    End Property
 
    Public Property SpellSingleLanguage() As String
        Get
            Return singleLang
        End Get
 
        Set(value As String)
            singleLang = value
        End Set
    End Property
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            RadEditor1.Modules.Clear()
            RadEditor1.Languages.Clear()
            RadEditor1.SpellCheckSettings.AllowAddCustom = True
            RadEditor1.SpellCheckSettings.SpellCheckProvider = SpellCheckProvider.PhoneticProvider
 
            If String.IsNullOrEmpty(singleLang) Then
                Using ctx As New MyLovelyFood_DynamicStocksEntities()
                    Dim langs = From a In ctx.aux_languageList Where a.Published = True And a.SpellEnabled = True Select a.LanguageCulture, a.Name, a.PrimaryLang Order By PrimaryLang
                    For Each row In langs
                        RadEditor1.Languages.Add(New SpellCheckerLanguage(row.LanguageCulture, row.Name))
                    Next
                End Using
            Else
                RadEditor1.SpellCheckSettings.DictionaryLanguage = singleLang
            End If
        End If
    End Sub
 
    Protected Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        RaiseEvent SaveClick(Me, e)
    End Sub
End Class

Default page:
    ' Prepare text editor
' For each Tab, create a new Editor...
    Private Sub RadTabStripIngredients_TabDataBound(sender As Object, e As RadTabStripEventArgs) Handles RadTabStripIngredients.TabDataBound
        Dim pageView As New RadPageView()
        pageView.ID = e.Tab.Value
        RadMultiPageIngredients.PageViews.Add(pageView)
    End Sub
 
    Private Sub RadMultiPageIngredients_PageViewCreated(sender As Object, e As RadMultiPageEventArgs) Handles RadMultiPageIngredients.PageViewCreated
        editorControl = LoadControl("~/common/AttributesEditor.ascx")
        editorControl.ID = e.PageView.ID & "_userControl"
 
        Using ctx As New DynamicStocksEntities()
            Dim langCulture = From a In ctx.aux_languageList Where a.Id = e.PageView.ID Select a.LanguageCulture
            editorControl.SpellSingleLanguage = langCulture.FirstOrDefault
        End Using
 
        e.PageView.Controls.Add(editorControl)
        AddHandler editorControl.SaveClick, AddressOf SaveEditor
    End Sub
 
    Private Sub SaveEditor(ByVal sender As Object, ByVal e As EventArgs)
        Dim editorObj As productAttributesEditor = TryCast(sender, Object)
        Dim content As String = TryCast(editorObj.RadEditor, RadEditor).Text
        MsgBox(content) ' >>>> ERROR, WE JUST RECEIVE THE INITIAL VALUE INSTEAD OF THE MODIFIED VERSION
        If Not String.IsNullOrEmpty(Trim(content)) Then
' DO SOMETHING
        End If
    End Sub

1 Answer, 1 is accepted

Sort by
0
Accepted
Rumen
Telerik team
answered on 10 May 2013, 02:02 PM
Hi,

Set the UseSubmitBehavior="false" property to the RadButton control, e.g.

<telerik:RadButton ID="RadButton1" UseSubmitBehavior="false" runat="server" Text="Save" Height="22px" />

as suggested in the following KB article: RadEditor Content Not Saved After Ajax Update in IE9, Firefox, Google Chrome and Safari.

Kind regards,
Rumen
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
Editor
Asked by
Marc
Top achievements
Rank 1
Answers by
Rumen
Telerik team
Share this question
or