Привязка данных int32 к TextBox с поддержкой MaskedEditExtender

I have a master/detail scheme for editing an asp:GridView using an asp:DetailsView. One of my fields is for a phone number of type int64 (always 10 digits). I would like this field to always be displayed as (###)###-####. My issue is the first digit in the phone number is always truncated for my edit item field which I used a MaskedEditExtender to achieve the formatting.

Вот мой 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>

When my details view is displayed for editing, the text box displays(_23)456-7890 for the integer 1234567890. Also worth noting that if the property MaskType="Number" is removed, the textbox shows: (234)567-890_. I would of course have the textbox show (123)-546-67890 after binding.


person Zach Skinner    schedule 09.03.2010    source источник


Ответы (4)


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

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

Mask="(999)999-9999"

to

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

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

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

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

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

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

\ - escape-символ

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

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

Примеры

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

99/99 — четыре цифровых символа, разделенных посередине знаком «/».

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

person Community    schedule 12.06.2012

Эта проблема связана с: http://www.codeplex.com/AjaxControlToolkit/WorkItem/View.aspx?WorkItemId=11819

person Zach Skinner    schedule 11.03.2010

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

person Smur    schedule 03.05.2010

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

  1. Выполнение деспециализации в маске, например:

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

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

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

person Farouk Belhocine    schedule 20.10.2013