1

我有一个使用 asp:DetailsView 编辑 asp:GridView 的主/详细方案。我的字段之一是 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

4 回答 4

2

问题可能是您没有为“(”、“)”和“-”使用“转义字符”。

可能想改变你的面具

Mask="(999)999-9999"

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

根据文档,没有“(”、“)”或“-”,所以你可能会告诉它做一些意想不到的事情。从关于口罩的部分...

/ - 日期分隔符

: - 时间分隔符

. - 小数分隔符

, - 千位分隔符

\ - 转义字符

{ - 掩码重复的初始分隔符

} - 掩码重复的最终分隔符

例子

9999999 - 七个数字字符

99/99 - 中间用“/”分隔的四个数字字符

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

于 2012-06-12T18:04:39.810 回答
1

此问题似乎是与以下相关的错误: http: //www.codeplex.com/AjaxControlToolkit/WorkItem/View.aspx? WorkItemId=11819

于 2010-03-11T21:24:15.857 回答
0

我遇到了同样的问题,为我解决的问题是将 MaskedEditExtender 的属性
“ClearMaskOnLostFocus”更改为 True。

于 2010-05-03T13:01:53.643 回答
0

我也有同样的问题,并且:

  1. 在面具中进行非专业化,例如:

        Mask="\(999\)999\-9999",
    
  2. ClearMaskOnLostFocus 设置为 true。

解决了这个问题。

谢谢大家。

于 2013-10-20T13:35:04.523 回答