Ajax的HtmlEditorExtender与IE有关

时间:2014-07-23 08:33:58

标签: asp.net ajax internet-explorer htmleditorextender

资源: 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脚本!):

JS Error in Debug

此错误来自HTMLEditorExtender,因为当我删除此控件时,我在提交表单时不再在页面上出现任何错误。 按继续,在调试中,我没有得到任何其他意外行为,文本以正确的html格式保存在数据库中。

生产

当网站发布时,我会遇到这种奇怪的行为(用户输入以下文字): ProdEnteredText Before Submit

点击第一次保存后: After I click save the first time

点击保存几次后,无需更改任何内容: enter image description here

这仅在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中正常工作?

0 个答案:

没有答案