资源: WebForm,VS 2010,.Net 4.0,SQL Server 2008 R2,IE 11& Chrome 36.0.1985.125 m。
网络表单旨在创建电子邮件通知。因此,我附加了textbox
ajax HtmlEditorExtender
。在用户添加/编辑html文本(应该是电子邮件正文)后,它将保存在db中的varbinary(max)
列中。
调试
在调试模式下,我注意到当用户单击表单上的保存按钮时,我收到一个JS错误(虽然我根本没有在表单中有任何js脚本!):
此错误来自HTMLEditorExtender
,因为当我删除此控件时,我在提交表单时不再在页面上出现任何错误。
按继续,在调试中,我没有得到任何其他意外行为,文本以正确的html格式保存在数据库中。
生产
当网站发布时,我会遇到这种奇怪的行为(用户输入以下文字):
点击第一次保存后:
点击保存几次后,无需更改任何内容:
这仅在IE中发生(在IE 11中测试,我不知道它是否在以前版本的IE中是相同的)。在谷歌浏览器中它可以正常工作,但在我的公司中,唯一允许的浏览器是IE浏览器,因此Chrome在这里没有任何好处。
以下是一些代码段:
.aspx的:
控制:
<td colspan="10" style="padding: 5px; margin: 5px; width:100%; overflow:auto;" >
<asp:TextBox ID="tbBody" runat="server" Text="" TextMode="MultiLine" Rows="30" Columns="118" ></asp:TextBox>
<br />
<ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" runat="server"
TargetControlID="tbBody" DisplaySourceTab="true" >
<Toolbar>
<ajaxToolkit:FontNameSelector />
<ajaxToolkit:HorizontalSeparator />
<ajaxToolkit:FontSizeSelector />
<ajaxToolkit:Bold />
<ajaxToolkit:Italic />
<ajaxToolkit:Underline />
<ajaxToolkit:StrikeThrough />
<ajaxToolkit:JustifyLeft />
<ajaxToolkit:JustifyCenter />
<ajaxToolkit:JustifyRight />
<ajaxToolkit:JustifyFull />
<ajaxToolkit:InsertOrderedList />
<ajaxToolkit:InsertUnorderedList />
<ajaxToolkit:RemoveFormat />
<ajaxToolkit:BackgroundColorSelector />
<ajaxToolkit:ForeColorSelector />
<ajaxToolkit:Indent />
<ajaxToolkit:Outdent />
<ajaxToolkit:InsertHorizontalRule />
<ajaxToolkit:HorizontalSeparator />
</Toolbar>
</ajaxToolkit:HtmlEditorExtender>
页:
页面语言=&#34; C#&#34; AutoEventWireup =&#34;假&#34;的CodeFile =&#34; Notification.aspx.cs&#34;继承=&#34; RulesManagement_Notification&#34;标题=&#34;通知&#34; 的MasterPageFile =&#34;〜/ MasterPage.master&#34; ValidateRequest =&#34;假&#34;
注册程序集=&#34; AjaxControlToolkit&#34;命名空间=&#34; AjaxControlToolkit&#34;的TagPrefix =&#34; ajaxToolkit&#34;
CS:
save方法(将文本作为参数传递给db时):
SqlParameter prmBody = new SqlParameter(&#34; @ BODY&#34;,SqlDbType.NVarChar,-1); prmBody.Value = tbBody.Text; sqlSaveNotif.Parameters.Add(prmBody);
从我可以告诉文本框的实际文本,它被这个HTMLEE的某种奇怪的行为改变了但仅在IE中。 我愿意使用任何其他控件来提供与HTMLEE相同的功能。我已经尝试了FreeTextBox控件,但我无法在IE中使用它,它只适用于Chrome :)。在这种情况下,是否有开箱即用的(html或asp.net)控件可以帮助我?如果没有,我如何让Ajax的HTMLee控件在IE中正常工作?