我有一个使用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
。
答案 0 :(得分:2)
问题可能是你没有为你的“(”,“)”和“ - ”使用“逃脱字符”。
可能想要改变你的面具
Mask="(999)999-9999"
到
Mask="\(999\)999\-9999"
根据文档,没有“(”,“)”或“ - ”,所以你可能会告诉它做一些无意的事情。从面具部分......
/ - 日期分隔符
: - 时间分隔符
。 - 小数分隔符
, - 千位分隔符
\ - 逃脱角色
{ - 重复掩码的初始分隔符
} - 重复掩码的最终分隔符
示例
9999999 - 七个数字字符
99/99 - 四个数字字符在中间用“/”
分隔答案 1 :(得分:1)
答案 2 :(得分:0)
我遇到了同样的问题,为我解决的问题是更改了MaskedEditExtender的属性
“ClearMaskOnLostFocus”为True。
答案 3 :(得分:0)
我也有同样的问题,并且:
在面具中进行despecialisation,如:
Mask="\(999\)999\-9999",
将ClearMaskOnLostFocus设置为true。
解决了这个问题。
谢谢大家。