我访问了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。我怀疑这是与此问题有关的页面生命周期。
有什么建议可以解决这个问题吗?
答案 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"
将此属性添加到RadEditor。
我怀疑控件试图解释html的方式可能是其中一个问题。导致此问题的另一个原因是页面生命周期。