Estou trabalhando em um projeto onde tem uma analista de testes fantástica, não deixa passar nada. E um dos items do checklist era colocar um contador de caracteres e um limitador para o tamanho do texto no HTMLEditor do AjaxControltoolkit. Deu um pouquinho de trabalho. Umas das dificuldades é que o HTMLEditor usa iFrames, mas nada que o jQuery não resolva.
Uma vez com o código fonte do AjaxControltoolkit, criei uma uma versão mais lite do HTMLEditor, chamando de LiteHTMLEditor.
Adicionei a propriedade MaxLength:
[DefaultValue(0)]
[Themeable(false)]
public virtual int MaxLength { get; set; }
Sobrescrevi o método RenderEndTag:
base.RenderEndTag(writer);
if (MaxLength > 0)
{
string clientID = string.Format("{0}_ctl02_ctl01", ClientID);
writer.Write("<i>(Caracteres restantes: <span id=\"" + ClientID + "_info\">" + MaxLength + "</span>)</i>");
Page.ClientScript.RegisterStartupScript(GetType(), string.Format("LiteHTMLEditor_{0}", ClientID), ScriptLiteHTMLEditor(), true);
}
Bom, é isso aí!
LiteHTMLEditor.rar (490.56 kb)
;)