post icon

Establecer el MaxLength en un ASPxMemo [DevExpress]

Meses atrás vimos la sencilla tarea de determinar el MaxLength de los Textbox Multiline en ASP.Net, y en ésta ocasión haremos veremos una tarea semejante pero sobre los controles de DevExpress, en su equivalente ASPxMemo.

La validación desde el lado cliente lo realizaremos con JavaScript y del lado servidor con C#.

Para comenzar agregamos el código JS primeramente y sería como sigue:

function SetMaxLength(memo, maxLength) {
    if (!memo)
        return;
    if (typeof (maxLength) != "undefined" && maxLength >= 0) {
        memo.maxLength = maxLength;
        memo.maxLengthTimerToken = window.setInterval(function () {
            var text = memo.GetText();
            if (text && text.length > memo.maxLength)
                memo.SetText(text.substr(0, memo.maxLength));
        }, 10);
    } else if (memo.maxLengthTimerToken) {
        window.clearInterval(memo.maxLengthTimerToken);
        delete memo.maxLengthTimerToken;
        delete memo.maxLength;
    }
}

function OnMaxLengthChanged(s, e) {
    var maxLength = s.GetNumber();
    SetMaxLength(memo, maxLength);
}

Y en el evento Load de la página anexamos más JS:

// el maximo será de 150 caracteres
txtMemo.ClientSideEvents.Init = "function(s, e) { SetMaxLength(s, 149); }";

Eso mismo podemos agregarlo en evento Init desde el Wizard. En el lado servidor es muy sencillo controlar esto:

if (txtMemo.Text.Length > 150)
{
    throw new exception("Limite superado en txtMemo");
}

fuente: www.devexpress.com

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder