2012-04-02 61 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>; 

顯然通過改變這個簡單的值作爲文本框的屬性引起了各種各樣的奇怪。
如果有人知道爲什麼這會導致失敗,我很樂意聽到它。 謝謝!