2012-04-02 4 views
0

Я прочитал элемент управления Masked Edit and Phone Number на asp.net и некоторое время просматривал эту тему, но не нашел ответа о том, почему это поведение происходит.
У меня есть следующий MaskedEditExtender, определенный для использования с телефонными номерами. Я хотел бы, чтобы маска отображалась до ввода информации в текстовое поле и оставалась как во время записи, так и после действительной записи.AJAX MaskedEditExtender для телефонных номеров

<ajax:MaskedEditExtender ID="mee1" runat="server" Mask="999-999-9999" 
AcceptNegative="None" MessageValidatorTip="true" TargetControlID="tbBox" 
MaskType="Number" ClearMaskOnLostFocus="false" ClearTextOnInvalid="false"> 

Я полагал, что простое определение, подобное вышеизложенному, будет работать, но поведение формы является неустойчивым. Маска видна до ввода значения (когда текстовое поле пуст), но при вводе маски исчезает. Кроме того, после того, как запись была сделана, маска больше не видна, если я не выхожу из текстового поля, а затем обратно в нее. Как только я получу маску, чтобы снова появиться с записью, она, кажется, останется.

Является ли этот элемент управления сломанным или я пропустил что-то основное?

Большое спасибо за любую помощь!

+0

Я обнаружил (посредством выборочного комментирования кода), что он связан с методом PreRender в текстовом поле TargetControlID. Метод настраивает ширину текстового поля на основе ввода посредством применения стиля через TextBox.Attributes.Add(). Это все еще не объясняет, почему это вызывает проблемы с маской. – McArthey

ответ

0

Я надеюсь, что это поможет кому-то еще. Эта проблема была вызвана одним утверждением в методе PreRender.

tbBox.MaxLength = <some integer>; 

Видимо, изменив это простое значение как свойство текстового поля вызвало всякие странности.
Если у кого-то есть идея, почему это вызывает неудачу, я бы с удовольствием ее услышал. Спасибо!

Смежные вопросы