在RadEditor中设置内容

时间:2013-09-17 12:35:35

标签: c# asp.net telerik radeditor

我访问了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。我怀疑这是与此问题有关的页面生命周期。

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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

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

很快说,这就是你需要在RadWindow的OnClientShow事件中拥有的东西:

function OnClientShow()
{
    $find("<%=RadEditor1.ClientID %>").onParentNodeChanged();
}

答案 2 :(得分:0)

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

EnableTextareaMode="true"

将此属性添加到R​​adEditor。

我怀疑控件试图解释html的方式可能是其中一个问题。导致此问题的另一个原因是页面生命周期。