Привязка данных int32 к MaskedEditExtender с включенным TextBox - PullRequest
1 голос
/ 10 марта 2010

У меня есть схема 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 = "Number" удалено, в текстовом поле отображается: (234)567-890_. Конечно, после привязки текстовое поле будет показывать (123)-546-67890.

Ответы [ 4 ]

2 голосов
/ 12 июня 2012

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

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

Mask="(999)999-9999"

до

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

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

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

: - Разделитель времени

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

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

\ - символ перехода

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

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

Примеры

9999999 - семь числовых символов

99/99 - четыре числовых символа, разделенных посередине знаком "/"

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

1 голос
/ 12 марта 2010
0 голосов
/ 20 октября 2013

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

  1. Делаем деспециализацию в маске вроде:

        Mask="\(999\)999\-9999",
    
  2. Если для ClearMaskOnLostFocus задано значение true.

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

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

0 голосов
/ 03 мая 2010

У меня была такая же проблема, и что для меня решило, это изменило свойство MaskedEditExtender
"ClearMaskOnLostFocus" в True.

...