Telerik RadEditor Рендеринг проблема - PullRequest
0 голосов
/ 08 июня 2009

Я работал над проектом, в котором мы используем элемент управления Telerik RadEditor (версия 2009.1.402.35). По большей части все, кажется, работает хорошо (то есть, жирный, курсив, цвет и т. Д.). Однако проблема заключается в том, что функции отступа и списка (маркированные и пронумерованные) не отображаются должным образом на экране, пока пользователь редактирует содержимое. Что интересно, так это то, что при нажатии кнопки «Отступ» или «Список» добавляется правильная разметка в HTML.

Проблема проявляется в MSIE 6,7, 8 и FireFox 3 (единственные, которые я тестировал до сих пор). Редактор используется в пользовательском контроле, который работает в контексте среды SharePoint. Я подозреваю, что это какой-то тип конфликта CSS или несовместимость с тем, как я его использую. Любые идеи о том, почему некоторые функции работают, но не другие с этим элементом управления?

  <telerik:RadEditor ID="topicBody" Runat="server" Width="100%" height="300" >
    <Tools>
        <telerik:EditorToolGroup Tag="Top">
            <telerik:EditorTool Name="Bold" />
            <telerik:EditorTool name="Italic"/>
            <telerik:EditorTool name="Underline"/>  
            <telerik:EditorTool name="StrikeThrough"/>  
            <telerik:EditorSeparator Visible="true" />
            <telerik:EditorTool name="JustifyLeft"/>
            <telerik:EditorTool name="JustifyCenter"/>
            <telerik:EditorTool name="JustifyRight"/>
            <telerik:EditorTool name="JustifyFull"/>
            <telerik:EditorSeparator Visible="true" />
            <telerik:EditorTool name="InsertOrderedList"/>
            <telerik:EditorTool name="InsertUnorderedList"/>
            <telerik:EditorTool name="Outdent"/>
            <telerik:EditorTool name="Indent"/>
            <telerik:EditorSeparator Visible="true" />
            <telerik:EditorTool name="FontName"/>
            <telerik:EditorTool name="FontSize"/>
            <telerik:EditorTool name="ForeColor"/>
            <telerik:EditorTool name="BackColor"/>                  
        </telerik:EditorToolGroup>
        <telerik:EditorToolGroup Tag="Middle">
            <telerik:EditorTool name="Undo"/>
                <telerik:EditorTool name="Redo"/>   
                <telerik:EditorSeparator Visible="true" />              
            <telerik:EditorTool name="LinkManager"/>
            <telerik:EditorTool name="Unlink"/>
            <telerik:EditorSeparator Visible="true" />
            <telerik:EditorTool name="InsertTable"/>
            <telerik:EditorSeparator Visible="true" />      
                <telerik:EditorTool name="Cut"/>
            <telerik:EditorTool name="Copy"/>
                <telerik:EditorTool name="PasteAsHtml"/>
                <telerik:EditorTool name="PastePlainText"/>
                <telerik:EditorSeparator Visible="true" />
                <telerik:EditorTool name="Print"/>                                 
        </telerik:EditorToolGroup> 
    </Tools>
</telerik:RadEditor>

Ответы [ 3 ]

2 голосов
/ 05 января 2010

Пожалуйста, ознакомьтесь со следующей справочной статьей, в которой приведены рекомендации по решению проблемы: http://www.telerik.com/help/aspnet-ajax/editor-content-area-appearance-problems.html

1 голос
/ 08 июня 2009

Проблема в этом оказалась конфликтующей CSS. CSS-файл основного сайта имел селекторы, соответствующие BLOCKQUOTE, OL, UL и LI, которые мешали работе RadEditor. Это удивительно, учитывая тот факт, что RadEditor использует IFrame для рендеринга контента, который редактирует пользователь. Я не верю, что это должно быть извлечение css с сайта контейнера. Это похоже на ошибку в элементе управления, из-за которой стили могут перетекать в Iframe, который должен быть островом без внешнего CSS.

0 голосов
/ 28 августа 2012

Пожалуйста, попробуйте использовать следующий код:

if (Request.Browser.Browser.ToLowerInvariant() == "firefox")
            {
                System.Reflection.FieldInfo browserCheckedField = typeof(RadEditor).GetField("_browserCapabilitiesRetrieved", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                browserCheckedField.SetValue(RadEditor1, true);
                System.Reflection.FieldInfo browserSupportedField = typeof(RadEditor).GetField("_isSupportedBrowser", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                browserSupportedField.SetValue(RadEditor1, true);
            }
...