RadNumericTextBox的MaxValue和MinValue根本不起作用

时间:2016-07-14 11:04:46

标签: asp.net telerik

我正在使用Telerik.Web.UI版本v4.0.30319。

即使将AllowOutOfRangeAutoCorrect设置为false,MaxValue和MinValue仍然无法正常工作。

以下是我使用的代码。

<telerik:RadNumericTextBox ID="txtMinutes" runat="server" AllowOutOfRangeAutoCorrect="false" MaxValue="1440" MinValue="0" Width="35px" MaxLength="4">
    <NumberFormat DecimalDigits="0" />
</telerik:RadNumericTextBox>

它也接受负值

我需要验证RadNumericTextBox的onchange事件,而不是丢失焦点

3 个答案:

答案 0 :(得分:1)

您的准则在我的最后工作正常。为了避免负数,你可以验证像这样

<telerik:RadNumericTextBox ID="txtMinutes" runat="server" AllowOutOfRangeAutoCorrect="false" MaxValue="1440" MinValue="0" Width="35px" MaxLength="4">
    <NumberFormat DecimalDigits="0" />
<ClientEvents OnKeyPress="OnKeyPress" />
</telerik:RadNumericTextBox>
 function OnKeyPress(Sender, args) {
        if (args.get_keyCode() == 45`enter code here`) {
            alert("-ve number is not allowed!");
            args.set_cancel(true);
        }
    }

答案 1 :(得分:0)

要验证RadNumericTextbox的范围,您需要使用RangeValidator,如:

<asp:RangeValidator ID="NumericTextBoxRangeValidator" 
                runat="server" 
                ControlToValidate="txtMinutes"
                ErrorMessage="Please enter in a number between 0 and 100." 
                Display="Dynamic"
                MaximumValue="100" MinimumValue="0" Type="Decimal">

Telerik example/documentation

希望这有帮助!

答案 2 :(得分:0)

如果您理解正确,我认为您正在考虑进行服务器端验证。您可以做的是将AutoPostBack属性设置为 true 并注册OnTextChanged事件并在后面的代码中进行验证。

ASPX

<telerik:RadNumericTextBox ID="txtMinutes" runat="server" AllowOutOfRangeAutoCorrect="false" Width="35px" MaxLength="4">
    <NumberFormat DecimalDigits="0" />
</telerik:RadNumericTextBox>

背后的代码

protected void txtMinutes_TextChanged(object sender, System.EventArgs e)
{
    var val = int.Parse(txtMinutes.Text);
    if (val < 0 || val > 1440)
    {
         // do your thing when out of range...
    }
    else
    {
         // do your thing when within range...
    }
}

请注意以下有关RadNumericTextBox的信息。

  

使用MaxValue和MinValue属性指定范围   数字文本框。如果用户尝试输入更大的值   比MaxValue属性的值,数字文本框   自动将值更改为MaxValue。同样,如果是用户   尝试输入小于MinValue值的值   属性,数字文本框自动将值更改为   MINVALUE。

     

RadNumericTextBox不支持最大值和最小值   值大于+/- 2 ^ 46的值。设置MaxValue   属性超过2 ^ 46或MinValue属性小于-2 ^ 46   可能会导致RadNumericTextBox行为异常。

http://docs.telerik.com/devtools/aspnet-ajax/controls/input/radnumerictextbox/overview#limiting-the-range