2012-04-02 59 views
0

我已阅读了在asp.net中的Masked Edit and Phone Number控件,并在此主题上浏览了一段时间,但未找到有关此行为发生原因的答案。
我有以下MaskedEditExtender定义用于电话号码。我希望在将信息输入到文本框之前显示掩码,并在输入内容和输入有效内容后保留两者。用于电话号码的AJAX MaskedEditExtender

<ajax:MaskedEditExtender ID="mee1" runat="server" Mask="999-999-9999" 
AcceptNegative="None" MessageValidatorTip="true" TargetControlID="tbBox" 
MaskType="Number" ClearMaskOnLostFocus="false" ClearTextOnInvalid="false"> 

我相信像上面这样简单的定义可以工作,但表单的行为是不稳定的。在输入值之前(当文本框为空时),但输入掩码时消失,该掩码是可见的。此外,输入后,掩码不再可见,除非我点击文本框然后回到它。一旦我的面具重新出现,它似乎仍然存在。

这个控件是打破的还是我缺少一些基本的东西?

非常感谢您的帮助!

+0

我已经发现(通过选择性地注释掉代码)它与TargetControlID文本框上的PreRender方法有关。该方法根据通过TextBox.Attributes.Add()应用样式的输入来调整文本框的宽度。这仍然不能解释为什么这会导致面罩出现问题。 – McArthey 2012-04-02 17:01:40

回答

0

我希望这可以帮助别人。此问题是由PreRender方法中的单个语句引起的。

tbBox.MaxLength = <some integer>; 

显然通过改变这个简单的值作为文本框的属性引起了各种各样的奇怪。
如果有人知道为什么这会导致失败,我很乐意听到它。 谢谢!