在网页上,我尝试为特定的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无法在加载阶段找到它。
答案 0 :(得分:0)
将tinyMCE的加载序列放入onload
事件中。
使用其中一个JS框架有更优雅的方法,但基本方法是
document.onload = function() { tinyMCE.init ...... }
在文档的<head>
部分。
答案 1 :(得分:0)
答案 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初始化。
这不是完美的答案,所以如果有更好的答案,我会接受它。