ASP.NET AJAX ToolKit:数字MaskedEditExtender问题

时间:2011-04-20 07:28:31

标签: asp.net

我有一个AJAX ToolKit MaskedEditExtender控件:

<asp:TextBox ID="payRateTextBox" runat="server" 
    CssClass="valueControl"></asp:TextBox>

<asp:MaskedEditExtender ID="payRateMaskedEditExtender" runat="server" 
    AcceptNegative="Left" InputDirection="RightToLeft" 
    Mask="999.99" MaskType="Number" 
    TargetControlID="payRateTextBox"  />

获得焦点时,空文本如下所示:

  

__ _ _ 即可。 _ _

问题是扩展器剂量允许用户输入0作为该点左侧第一个数字中的第一个输入字符(X所在的位置)..

  

___ X ___

Here是一个示范。

建议得到赞赏..

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

尝试将此代码放入您的页面

<script type="text/javascript">
    Sys.Application.add_load(function () {
        Sys.Extended.UI.MaskedEditBehavior.prototype._MoveDecimalPos = 
           function () {
              var e = this.get_element();
              var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e);
              var curpos = this._LogicFirstPos;
              var max = this._LogicLastPos;
              var posDc = -1;
              while (curpos < max) {
                 if (wrapper.get_Value().substring(curpos, curpos + 1) ==
                     this.get_CultureDecimalPlaceholder()) {
                    posDc = curpos + 1;
                    break;
                }
                curpos++;
            }
            if (posDc == -1) {
                return;
            }
            this.setSelectionRange(posDc, posDc);
        };
    });
</script>

答案 2 :(得分:1)

我知道我无法获得自己的赏金,所以,我的答案仅仅是为了解决这个问题。

只需取消分配InputDirection属性即可解决问题!我想在使用浮点时使用它是不合适的..

当然,如果我知道在第一时间我会节省50个声誉;)