2010-03-09 2 views
1

Databinding int32 to MaskedEditExtender enabled TextBox

У меня есть схема master/detail для редактирования asp: GridView с помощью asp: DetailsView. Одно из моих полей - номер телефона типа int64 (всегда 10 цифр). Я бы хотел, чтобы это поле всегда отображалось как (###)###-####. Моя проблема заключается в том, что первая цифра в телефонном номере всегда усечена для моего поля элемента редактирования, для которого я использовал MaskedEditExtender для достижения форматирования.

Вот мой EditItemTemplate для просмотра подробной информации:

<cc1:MaskedEditExtender TargetControlID="edtPROJ_Leader_Phone" Mask="(999)999-9999" runat="server" ClearMaskOnLostFocus="false" ClipboardEnabled="true" MaskType="Number" /> 
<asp:TextBox ID="edtPROJ_Leader_Phone" runat="server" Text='<%# Bind("PROJ_Leader_Phone") %>' ></asp:TextBox> 

Когда мои детали просмотреть отображается для редактирования в текстовом поле отображается (_23)456-7890 для целого 1234567890. Также стоит отметить, что если имущество MaskType =» Номер "удаляется, текстовое поле показывает: (234)567-890_. Я бы, конечно же, получил текстовое поле (123)-546-67890 после привязки.

ответ

2

Проблема может заключаться в том, что вы не используете «Escape Characters» для своих «(», «)» и «-».

не может захотеть изменить свою маску из

Mask="(999)999-9999" 

в

Mask="\(999\)999\-9999" 

Согласно документации, там нет "(", ")", или "-", так что вы можете рассказывать ему что-то непреднамеренное. В разделе о масках ...

/- Разделитель

: - Разделитель

.- Десятичный разделитель

, - Разделитель тысяч

\ - Побег символы

{- Начальный ограничитель для повторения масок

} - Заключительные разделители для повторения масок

Примеров

9999999 - Семь цифровых символов

99/99 - Четыре цифровые символы разделены в середине с помощью "/"

http://www.asp.net/ajaxlibrary/act_MaskedEdit.ashx

0

Я была такая же проблема, и что решить это для меня меняется свойство MaskedEditExtender в
«ClearMaskOnLostFocus» в True.

0

У меня тоже была такая же проблема, и:

  1. Ведение despecialisation в маске, как:

    Mask="\(999\)999\-9999", 
    
  2. С ClearMaskOnLostFocus установлено значение true.

Решил проблему.

Спасибо за все.