.Net(4.0- Framework): Issue:1: We have a home.ascx file inside this file we used 108 webhtmleditor. For page loading/rendering itself very slow and user is typing a commnets and clicking on save button ,It's keep on clocking(processing) to save the data more than 30 minutes of time. I tried in server side to set viewstate property set as disable for those controls but no luck. Although , I added BrowserTarget="UpLevel" property for all webhtmleditor in that .ascx file (In my system its working fine and saving the data in 3 mins). But in my teammate machine it's not working browser is saying there is no enough memory to process. It's very urgent issue. COuld you please suggest the best solution. Am anticipating your response. Thanks in advance.
Issue 2: While copy pasting into webhtmleditor we are seeing html tags and along with data. how to overcome this issue in IE11 browser.
Please provide the code snippet for both the issues.
Hello,
Posting here for future reference.
We have further investigated the initialization performance issue with IE11 (value submission time described above are almost certainly caused by the page reloading again after).
Through profiling we have determined the root cause to the in the native offsetHeight used for height adjustments. My best guess is requesting this height causes IE11 to do an excessive amount of extra calculations and quite likely multiple re-renders, which might also explain the large amounts of memory reserved.
The calculations done are however required to properly size the control and editable area, so those cannot be completely avoided and usually yield minimal difference in common scenarios. We might consider other options for determining the effective height of the parts of the editor, however I see reports for the equivalent getBoundingClientRect also suffering similar problems . In the meantime, as this is an urgent issue for you I tested a simple workaround that usually helps in such cases – hiding the editors until they are initialized:
<body>
<form id="form1" runat="server">
<div id="editorsContainer" style="display:none">
<ig:WebScriptManager ID="WebScriptManager1" runat="server"></ig:WebScriptManager>
<ighedit:WebHtmlEditor ID="WebHtmlEditor1" runat="server"></ighedit:WebHtmlEditor>
<ighedit:WebHtmlEditor ID="WebHtmlEditor2" runat="server"></ighedit:WebHtmlEditor>
<%-- .... --%>
<ighedit:WebHtmlEditor ID="WebHtmlEditor108" runat="server"></ighedit:WebHtmlEditor>
<button type="submit">Save</button>
</div>
</form>
<script type="text/javascript">
function showEditors() {
document.getElementById("editorsContainer").style.display = "";
}
showEditors();
//window.onload = showEditors;
</script>
</body>
Note that you can hide and show the container in any way you see fit, this is just to illustrate. The only requirements is that it is shown after the editors are done initializing – their scripts are rendered at the end of the form tag so a script right after that is just in the right place, but you can also use the window load event or jQuery ready if you'd like.
From the results I can say the browser definitely re-renders, as the load time for 108 editors in IE11 went from the range of 2+ minutes to... about 11 seconds which is comparable to the 7-8s or so it takes in Chrome. Saving values was just as fast and memory usage was fairly low too, though I'd still recommend anything that would reduce the amount of controls on a single page.
We will continue to look into this issue and attempt to find a solution in our code but as this is a third party issue with one specific browser and rather large set of controls, there might be no straight forward solution if any.
As for the second part – can you provide a little more details - What content is being copied and how? The only reason to be seeing html tags in the editor itself if you paste HTML source text in the first place (otherwise the default paste would produce a WYSIWYG style copy content).
Regards,
Damyan Petev
Associate Software Developer
Infragistics, Inc.
Hello Damyan,
Thanks for the post, Issue 1 has been resolved after installing MS security patch IE11 performance back to normal.
IE11-Issue 2: We are copying a text from a webhtmleditor on a drop down change event and pasting to another webhtmleditor.After copying webhtmleditors comments data is mixed up with html and css proprties (for ex:
and css properties along with unwanted symbols. Is it possible to get the real data along with proper space.
Note : Even if we copy and paste manually into webhtmleditors and clicking on save button .After seeing also it's showing html tags along with css and unwanted symbols and also its showing in tooltip as well.
Could you please say? what are all changes should be done on code if we are moving from infragistics ver13.1 to infragistics15.2 and also i observed after insalling 15.2 can't able to find infragistics.web.spellchecker.dll in trial version .
Thanks much .
Thank you for providing information about the security update for IE11. If you have the KB id of the update it might be useful to add this as information in case others face the same issue in the future.
For the copy/paste issue, I’m not sure I entirely understand what you are trying to achieve – as an HTML editor, its data is supposed to contain tags and styling. Copying and pasting produces the expected results in IE11 just like other browsers. It would greatly help if you can provide some code of how you copy the data, more importantly how you access it afterwards (client or severs? which option/method?) and even better if you can provide this in a small sample.
When pasting web content (one that contains HTML) the result will be the same as the original as I mentioned before and the editor value will contain the HTML. Browsers will sometimes modify pasted HTML with slight variations, but other than minor formatting, they all behave in much the same way.
However, if you copy the HTML value as text (the same as manually copying from the HTML Tab of the editor) and paste that instead, the editor will display the HTML as text and the value will contain the HTML encoded string. There’s a special “Paste as HTML” option the will only work in IE for these cases.
If this is related to saving values on the server (I assume you already have working code for this, but just in case) there are multiple properties – for example Text will contain tags and TextPlain will have them removed (see image attached).
Lastly, the WebSpellchecker component has been removed was deprecated with the 2015.1 release and replaced with a new property, see:
http://help.infragistics.com/Doc/ASPNET/2015.2?page=Whats_New_in_2015_Volume_1.html
This means the assembly for WebSpellchecker is no longer in the product and doesn’t need to be referenced. I don’t think there are any other major changes.
Hi Damyan,
Thanks for your information.Although, first time am using your product so i asked my queries here itself going forward i will ask in forum.
Please go ahead and close this case. Have a happy coding..!!
I am glad to hear that you have successfully resolved your issues. As the "EnableSpellcheck" is an instance property, it should be set on all editors that require it. If you don't wish to change your page markup, you can easily apply the setting in code behind to all like so:
for (int i = 1; i < 109; i++)
{
(this.FindControl("WebHtmlEditor" + i) as WebHtmlEditor). EnableSpellCheck = true;
This, of course, assumes all your editors have indexed IDs you can loop though.
As for the upgrade of version we do ship a Version Upgrade Utility (can also be accessed through Tools menu in Visual Studio) you can add it from the Platform Installer if not already installed. Should the tool fail to recognize your project, you can always find and replace the version in the entire project in one go easily.
ASP.NET controls also have JavaScript API we refer to as client-side object model (CSOM). That includes events, which will be your best chance of determining which editor changed. Please have a look at the following event listing:
http://help.infragistics.com/Doc/ASPNET/2015.2?page=WebHtmlEditor_Client_Side_Events_CSOM.html
And you can also see code examples and give them a try in this sample:
http://es.infragistics.com/samples/aspnet/html-editor/client-side-events
If you need to only record values where the user interacted with/changed, perhaps when the editor loses focus (blur) you can store the value if it has changed. This way you can have an array of changed values without checking all editors. Also related http://es.infragistics.com/community/forums/t/81162.aspx and http://es.infragistics.com/community/forums/t/68038.aspx.
Respectively, like the WebHtmlEditor, the WebDatePicker also has client-side API:
http://help.infragistics.com/Doc/ASPNET/2015.2?page=WebDatePicker_CSOM_Overview.html
You can use value with the described getter and setter functions like:
http://es.infragistics.com/community/forums/t/44581.aspx
I'm not sure what would the validation of the HTML editor be in relation to that, but that also goes way outside the topic of this thread, see below.
About your new questions, according our policy we handle issue per case, and since this topic is regarding WebHtmlEditor performance in IE11, I will provide some reference information but if those are not enough, my suggestion is to create another forum thread/support request with your new question. This is for better consistency and history tracking.
Issue 1(solved):Patch update was done by separate third party infrastructure team, am not aware of it. If i get the details sure i will post here.
Issue 2(solved): I have fixed with my custom code and thanks for you effort. Although, i will try with "TextPlain" property and let you know.
Queries - For Infragistics ver 15.2 , webspellchecker was deprecated and i tried with single page along with "EnableSpellcheck" property to acheive the spell checker feature and it's working fine likewise i have to make changes in one place and it should apply throughout the application in all "WebHTMLEditors".Can you say how to implement this? .
Queries - Can you provide steps, What is the best way to change the version names in entire solution to upgrade from (Infragistics ver13.1 to 15.2)?.
Queries - In javascript/Jquery :How to get the Infragistics webdatepicker value and set a value and how to validate the webhtmleditors?. If you provide a code sample means it would be very helpful.
Queries: Is it possible to get the changed "webhtmleditors" alone using jquery?(For example: I have 10 webhtmleditors , but i have provide made data changes in 4 without looping entire webhtmleditors , how to get that changed webhtmleditors data values in jquery/javascript.
Thanks much your extended support.