设置TinyMCE文本框元素

时间:2009-12-28 16:27:37

标签: asp.net javascript tinymce

在网页上,我尝试为特定的asp:textbox web控件初始化TinyMCE。

这是标题中的javascript:

  tinyMCE.init({
        mode: "exact",
        elements: '<% = txtBody.ClientID %>',

问题是在DetailsView控件的模板内生成了txtBody控件:

<asp:TemplateField HeaderText="Body" SortExpression="Body">           
   <EditItemTemplate>
      <asp:TextBox ID="txtBody" runat="server" Rows="10" TextMode="MultiLine" Width="100%" Height="400px"></asp:TextBox>                  
   </EditItemTemplate>
</asp:TemplateField>

因此txtBody.ClientID无法在加载阶段找到它。

3 个答案:

答案 0 :(得分:0)

将tinyMCE的加载序列放入onload事件中。 使用其中一个JS框架有更优雅的方法,但基本方法是

document.onload = function() { tinyMCE.init ...... }

在文档的<head>部分。

答案 1 :(得分:0)

您可以使用TinyMce服务器控件而不是简单的TextBox。您可以找到here或我自己编写的另一个here

答案 2 :(得分:0)

知道我这样解决了这个问题:

对于文本框我添加了OnInit =“txtBody_OnInit”事件:

protected void txtBody_OnInit(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(GetType(), "SetEditor", string.Format("SetEditor('{0}');", ((TextBox)sender).ClientID), true);
}

然后在SetEditor(theID)javascript函数中添加tinymce初始化。

这不是完美的答案,所以如果有更好的答案,我会接受它。