数据绑定int32启用了MaskedEditExtender TextBox

时间:2010-03-09 21:03:30

标签: asp.net ajax maskededitextender

我有一个使用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>

当我的详细信息视图显示以进行编辑时,文本框显示整数1234567890的(_23)456-7890。另外值得注意的是,如果删除属性MaskType =“Number”,则文本框显示:(234)567-890_。我当然会在绑定后显示文本框(123)-546-67890

4 个答案:

答案 0 :(得分:2)

问题可能是你没有为你的“(”,“)”和“ - ”使用“逃脱字符”。

可能想要改变你的面具

Mask="(999)999-9999"

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

根据文档,没有“(”,“)”或“ - ”,所以你可能会告诉它做一些无意的事情。从面具部分......

/ - 日期分隔符

: - 时间分隔符

。 - 小数分隔符

, - 千位分隔符

\ - 逃脱角色

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

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

示例

9999999 - 七个数字字符

99/99 - 四个数字字符在中间用“/”

分隔

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

答案 1 :(得分:1)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

  1. 在面具中进行despecialisation,如:

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

  3. 解决了这个问题。

    谢谢大家。