Hi,
The igEditor is a widget, which implements all functionality and can accept any option of any extended editor. All extended editors like igMaskEditor, igCurrencyEditor, etc. are nothing more but wrappers, which do the only one thing: they set value of the "type" option for its base igEditor widget.
All extended editors were designed for purpose of clarity and documentation related to different functionality defined by the "type" option, and those extended editors target only explicit javascript usage.
Note: jquery does not support inheritance and each widget is final. It means, that if application created instance of igTextEditor, then it can not "typecast" it to igEditor in order to get/set options or call methods. Same for case when igEditor is created. Application can not be treated as igTextEditor. Application should use exact name of widget in initializer.
In case of Mvc, all editors instantiate the single igEditor and set its type option.
The maxLength can be set on server and on client as well. Below are examples for 3 possible scenarios. You may copy paste those lines into any (mvc) sample and check how it runs.
1. The Mvc creates TextEditor, sets its MaxLength on server and later changes maxLength on client.
<%= Html.Infragistics().TextEditor("Editor1").MaxLength(10).Render()%>
<input type="button" value="change1" onclick="$('#Editor1').igEditor('option', 'maxLength', 3)" />
2. That mimics Mvc #1 exactly, and shows what happens on client. The javascript creates igEditor, sets its maxLength in initializer and later changes maxLength.
<span id="Editor2"></span>
<script type="text/javascript">
$(function () {
$('#Editor2').igEditor({ type:'text', maxLength: 10 });
});
</script>
<input type="button" value="change2" onclick="$('#Editor2').igEditor('option', 'maxLength', 3)" />
3. The javascript creates igTextEditor, sets its maxLength in initializer and later changes maxLength.
<span id="Editor3"></span>
<script type="text/javascript">
$(function () {
$('#Editor3').igTextEditor({ maxLength: 10 });
});
</script>
<input type="button" value="change3" onclick="$('#Editor3').igTextEditor('option', 'maxLength', 3)" />