1

我访问了 Telerik 的网站并查看了他们的演示等...但是我在尝试在 RadEditor 中加载内容 (html) 时遇到问题。

我有一个 Button_Click 事件,我在其中获取我的 html 字符串,然后将其设置为 RadEditor。RadEditor 位于 RadWindow 内,仅在单击按钮时才可见。

        protected void btnSubmitHtml_Click(object sender, EventArgs e)
        {
            RadEditor1.Content = "<p>hello there</p>";
            RadWindow1.Visible = true;
        }

由于某些奇怪的原因,这不会显示 RadEditor 中的 html。我怀疑这是与此问题有关的页面生命周期。

有什么建议可以解决这个问题吗?

4

3 回答 3

1

在这里查看如何让 RadEditor 在 RadWindow 中工作:http ://www.telerik.com/help/aspnet-ajax/window-troubleshooting-radeditor-in-radwindow.html 。

简而言之,这是您需要在 RadWindow 的 OnClientShow 事件中拥有的内容:

function OnClientShow()
{
    $find("<%=RadEditor1.ClientID %>").onParentNodeChanged();
}
于 2013-09-19T09:43:01.960 回答
1

我多次遇到此问题,但从未找到“正确”的解决方案。

但是,一个很好的解决方法是通过注入脚本从客户端简单地设置内容。最终结果是一样的,如果你能容忍 10 毫秒的延迟,值得考虑。

评论后编辑请求参考

基本上,您只需要使用 ASP.NET WebForms $find 函数来获取编辑器的实例。这需要渲染对象根的 html ID 并返回客户端 viewModel(如果存在)。

最后的 $(setEditorInitialContent) 调用假定 jQuery 存在并将函数的执行延迟到页面加载。

<telerik:radeditor runat="server" ID="RadEditor1">
   <Content>
       Here is sample content!
   </Content>
</telerik:radeditor>
<script type="text/javascript">
    function setEditorInitialContent() {
        var editor = $find("<%=RadEditor1.ClientID%>"); //get a reference to RadEditor client object
        editor.set_html("HEY THIS IS SOME CONTENT INTO YOUR EDITOR!!!!");
    }
    $(setEditorInitialContent);
</script>
于 2013-09-17T13:58:50.907 回答
0

要编辑 Html 代码,您只能添加 -

EnableTextareaMode="true"

将此属性添加到 RadEditor。

我怀疑控件尝试解释 html 的方式可能是问题之一。可能导致此问题的另一件事是页面生命周期。

于 2013-09-18T11:43:18.037 回答